From 87da27f9bf1034551fc0b9c292d3137283292ec5 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Sat, 4 Mar 2023 15:06:35 +0100 Subject: [PATCH] fix: publishDirectory --- apps/api/src/jobs/deployApplication.ts | 14 ++++++-------- apps/api/src/lib/buildPacks/common.ts | 12 ++++++++---- apps/api/src/lib/buildPacks/gatsby.ts | 2 +- apps/api/src/lib/buildPacks/nestjs.ts | 2 +- apps/api/src/lib/buildPacks/nextjs.ts | 2 +- apps/api/src/lib/buildPacks/nuxtjs.ts | 2 +- apps/api/src/lib/buildPacks/react.ts | 2 +- apps/api/src/lib/buildPacks/static.ts | 2 +- apps/api/src/lib/buildPacks/svelte.ts | 2 +- apps/api/src/lib/buildPacks/vuejs.ts | 2 +- apps/api/src/lib/common.ts | 2 +- package.json | 2 +- 12 files changed, 24 insertions(+), 22 deletions(-) diff --git a/apps/api/src/jobs/deployApplication.ts b/apps/api/src/jobs/deployApplication.ts index ee698309f..8fb71cfe6 100644 --- a/apps/api/src/jobs/deployApplication.ts +++ b/apps/api/src/jobs/deployApplication.ts @@ -386,7 +386,7 @@ import * as buildpacks from '../lib/buildPacks'; try { dockerComposeConfiguration = JSON.parse(dockerComposeConfiguration); - } catch (error) {} + } catch (error) { } let deployNeeded = true; let destinationType; @@ -453,7 +453,7 @@ import * as buildpacks from '../lib/buildPacks'; try { await prisma.build.update({ where: { id: buildId }, data: { commit } }); - } catch (err) {} + } catch (err) { } if (!pullmergeRequestId) { if (configHash !== currentHash) { @@ -494,9 +494,8 @@ import * as buildpacks from '../lib/buildPacks'; try { await executeCommand({ dockerId: destinationDocker.id, - command: `docker ${ - location ? `--config ${location}` : '' - } pull ${imageName}:${customTag}` + command: `docker ${location ? `--config ${location}` : '' + } pull ${imageName}:${customTag}` }); imageFoundRemotely = true; } catch (error) { @@ -659,9 +658,8 @@ import * as buildpacks from '../lib/buildPacks'; try { const { stdout: containers } = await executeCommand({ dockerId: destinationDockerId, - command: `docker ps -a --filter 'label=com.docker.compose.service=${ - pullmergeRequestId ? imageId : applicationId - }' --format {{.ID}}` + command: `docker ps -a --filter 'label=com.docker.compose.service=${pullmergeRequestId ? imageId : applicationId + }' --format {{.ID}}` }); if (containers) { const containerArray = containers.split('\n'); diff --git a/apps/api/src/lib/buildPacks/common.ts b/apps/api/src/lib/buildPacks/common.ts index e75ac3c75..afcfe9207 100644 --- a/apps/api/src/lib/buildPacks/common.ts +++ b/apps/api/src/lib/buildPacks/common.ts @@ -429,7 +429,12 @@ export const setDefaultConfiguration = async (data: any) => { startCommand = template?.startCommand || 'yarn start'; if (!buildCommand && buildPack !== 'static' && buildPack !== 'laravel') buildCommand = template?.buildCommand || null; - if (!publishDirectory) publishDirectory = template?.publishDirectory || null; + if (!publishDirectory) { + publishDirectory = template?.publishDirectory || null; + } else { + if (!publishDirectory.startsWith('/')) publishDirectory = `/${publishDirectory}`; + if (publishDirectory.endsWith('/')) publishDirectory = publishDirectory.slice(0, -1); + } if (baseDirectory) { if (!baseDirectory.startsWith('/')) baseDirectory = `/${baseDirectory}`; if (baseDirectory.endsWith('/') && baseDirectory !== '/') @@ -702,9 +707,8 @@ export async function buildImage({ buildId, applicationId, dockerId, - command: `docker ${location ? `--config ${location}` : ''} build ${ - forceRebuild ? '--no-cache' : '' - } --progress plain -f ${workdir}/${dockerFile} -t ${cache} --build-arg SOURCE_COMMIT=${commit} ${workdir}` + command: `docker ${location ? `--config ${location}` : ''} build ${forceRebuild ? '--no-cache' : '' + } --progress plain -f ${workdir}/${dockerFile} -t ${cache} --build-arg SOURCE_COMMIT=${commit} ${workdir}` }); const { status } = await prisma.build.findUnique({ where: { id: buildId } }); diff --git a/apps/api/src/lib/buildPacks/gatsby.ts b/apps/api/src/lib/buildPacks/gatsby.ts index e630518cb..d133fd084 100644 --- a/apps/api/src/lib/buildPacks/gatsby.ts +++ b/apps/api/src/lib/buildPacks/gatsby.ts @@ -8,7 +8,7 @@ const createDockerfile = async (data, imageforBuild): Promise => { Dockerfile.push(`FROM ${imageforBuild}`); Dockerfile.push('WORKDIR /app'); Dockerfile.push(`LABEL coolify.buildId=${buildId}`); - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } diff --git a/apps/api/src/lib/buildPacks/nestjs.ts b/apps/api/src/lib/buildPacks/nestjs.ts index 88b48e6fe..a5efc2286 100644 --- a/apps/api/src/lib/buildPacks/nestjs.ts +++ b/apps/api/src/lib/buildPacks/nestjs.ts @@ -12,7 +12,7 @@ const createDockerfile = async (data, image): Promise => { if (isPnpm) { Dockerfile.push('RUN curl -f https://get.pnpm.io/v6.16.js | node - add --global pnpm@7'); } - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); Dockerfile.push(`EXPOSE ${port}`); Dockerfile.push(`CMD ${startCommand}`); diff --git a/apps/api/src/lib/buildPacks/nextjs.ts b/apps/api/src/lib/buildPacks/nextjs.ts index cc7fe36b4..af6172c74 100644 --- a/apps/api/src/lib/buildPacks/nextjs.ts +++ b/apps/api/src/lib/buildPacks/nextjs.ts @@ -42,7 +42,7 @@ const createDockerfile = async (data, image): Promise => { if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); Dockerfile.push(`EXPOSE 80`); } diff --git a/apps/api/src/lib/buildPacks/nuxtjs.ts b/apps/api/src/lib/buildPacks/nuxtjs.ts index cc7fe36b4..af6172c74 100644 --- a/apps/api/src/lib/buildPacks/nuxtjs.ts +++ b/apps/api/src/lib/buildPacks/nuxtjs.ts @@ -42,7 +42,7 @@ const createDockerfile = async (data, image): Promise => { if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); Dockerfile.push(`EXPOSE 80`); } diff --git a/apps/api/src/lib/buildPacks/react.ts b/apps/api/src/lib/buildPacks/react.ts index d47eb5847..27cf8718b 100644 --- a/apps/api/src/lib/buildPacks/react.ts +++ b/apps/api/src/lib/buildPacks/react.ts @@ -8,7 +8,7 @@ const createDockerfile = async (data, image): Promise => { Dockerfile.push(`FROM ${image}`); Dockerfile.push(`LABEL coolify.buildId=${buildId}`); Dockerfile.push('WORKDIR /app'); - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } diff --git a/apps/api/src/lib/buildPacks/static.ts b/apps/api/src/lib/buildPacks/static.ts index 1a9916082..def989fc9 100644 --- a/apps/api/src/lib/buildPacks/static.ts +++ b/apps/api/src/lib/buildPacks/static.ts @@ -31,7 +31,7 @@ const createDockerfile = async (data, image): Promise => { }); } if (buildCommand) { - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); } else { Dockerfile.push(`COPY .${baseDirectory || ''} ./`); } diff --git a/apps/api/src/lib/buildPacks/svelte.ts b/apps/api/src/lib/buildPacks/svelte.ts index 74e377657..a69eccd97 100644 --- a/apps/api/src/lib/buildPacks/svelte.ts +++ b/apps/api/src/lib/buildPacks/svelte.ts @@ -8,7 +8,7 @@ const createDockerfile = async (data, image): Promise => { Dockerfile.push(`FROM ${image}`); Dockerfile.push('WORKDIR /app'); Dockerfile.push(`LABEL coolify.buildId=${buildId}`); - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } diff --git a/apps/api/src/lib/buildPacks/vuejs.ts b/apps/api/src/lib/buildPacks/vuejs.ts index 74e377657..a69eccd97 100644 --- a/apps/api/src/lib/buildPacks/vuejs.ts +++ b/apps/api/src/lib/buildPacks/vuejs.ts @@ -8,7 +8,7 @@ const createDockerfile = async (data, image): Promise => { Dockerfile.push(`FROM ${image}`); Dockerfile.push('WORKDIR /app'); Dockerfile.push(`LABEL coolify.buildId=${buildId}`); - Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app/ ./`); + Dockerfile.push(`COPY --from=${applicationId}:${tag}-cache /app${publishDirectory} ./`); if (baseImage?.includes('nginx')) { Dockerfile.push(`COPY /nginx.conf /etc/nginx/nginx.conf`); } diff --git a/apps/api/src/lib/common.ts b/apps/api/src/lib/common.ts index a3c754f15..67d8775e7 100644 --- a/apps/api/src/lib/common.ts +++ b/apps/api/src/lib/common.ts @@ -19,7 +19,7 @@ import { saveBuildLog, saveDockerRegistryCredentials } from './buildPacks/common import { scheduler } from './scheduler'; import type { ExecaChildProcess } from 'execa'; -export const version = '3.12.22'; +export const version = '3.12.23'; export const isDev = process.env.NODE_ENV === 'development'; export const proxyPort = process.env.COOLIFY_PROXY_PORT; export const proxySecurePort = process.env.COOLIFY_PROXY_SECURE_PORT; diff --git a/package.json b/package.json index 31e009004..4da878fce 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "coolify", "description": "An open-source & self-hostable Heroku / Netlify alternative.", - "version": "3.12.22", + "version": "3.12.23", "license": "Apache-2.0", "repository": "github:coollabsio/coolify", "scripts": {