From fffe1d6249d56e14f0bad13476308e2e7a720c08 Mon Sep 17 00:00:00 2001 From: Motysten Date: Fri, 31 Jan 2025 14:15:52 +0100 Subject: [PATCH 1/2] fix: labels not added correctly when using "stack" type docker dompose file --- packages/server/src/utils/docker/domain.ts | 37 ++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/packages/server/src/utils/docker/domain.ts b/packages/server/src/utils/docker/domain.ts index 69bfa222a..2548d9388 100644 --- a/packages/server/src/utils/docker/domain.ts +++ b/packages/server/src/utils/docker/domain.ts @@ -203,9 +203,6 @@ export const addDomainToCompose = async ( if (!result?.services?.[serviceName]) { throw new Error(`The service ${serviceName} not found in the compose`); } - if (!result.services[serviceName].labels) { - result.services[serviceName].labels = []; - } const httpLabels = await createDomainLabels(appName, domain, "web"); if (https) { @@ -217,13 +214,35 @@ export const addDomainToCompose = async ( httpLabels.push(...httpsLabels); } - const labels = result.services[serviceName].labels; - - if (Array.isArray(labels)) { - if (!labels.includes("traefik.enable=true")) { - labels.push("traefik.enable=true"); + if (compose.composeType === "docker-compose") { + if (!result.services[serviceName].labels) { + result.services[serviceName].labels = []; + } + + const labels = result.services[serviceName].labels; + + if (Array.isArray(labels)) { + if (!labels.includes("traefik.enable=true")) { + labels.push("traefik.enable=true"); + } + labels.push(...httpLabels); + } + } else { + if (!result.services[serviceName].deploy) { + result.services[serviceName].deploy = {}; + } + if (!result.services[serviceName].deploy.labels) { + result.services[serviceName].deploy.labels = []; + } + + const labels = result.services[serviceName].deploy.labels; + + if (Array.isArray(labels)) { + if (!labels.includes("traefik.enable=true")) { + labels.push("traefik.enable=true"); + } + labels.push(...httpLabels); } - labels.push(...httpLabels); } // Add the dokploy-network to the service From af083ffa5d8dbecbc0c3e9504d495518bd7831f5 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sat, 1 Feb 2025 13:38:24 -0600 Subject: [PATCH 2/2] refactor: remove duplicate case --- packages/server/src/utils/docker/domain.ts | 23 +++++++++------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/packages/server/src/utils/docker/domain.ts b/packages/server/src/utils/docker/domain.ts index 2548d9388..7e1f84760 100644 --- a/packages/server/src/utils/docker/domain.ts +++ b/packages/server/src/utils/docker/domain.ts @@ -214,20 +214,15 @@ export const addDomainToCompose = async ( httpLabels.push(...httpsLabels); } + let labels: DefinitionsService["labels"] = []; if (compose.composeType === "docker-compose") { if (!result.services[serviceName].labels) { result.services[serviceName].labels = []; } - const labels = result.services[serviceName].labels; - - if (Array.isArray(labels)) { - if (!labels.includes("traefik.enable=true")) { - labels.push("traefik.enable=true"); - } - labels.push(...httpLabels); - } + labels = result.services[serviceName].labels; } else { + // Stack Case if (!result.services[serviceName].deploy) { result.services[serviceName].deploy = {}; } @@ -235,14 +230,14 @@ export const addDomainToCompose = async ( result.services[serviceName].deploy.labels = []; } - const labels = result.services[serviceName].deploy.labels; + labels = result.services[serviceName].deploy.labels; + } - if (Array.isArray(labels)) { - if (!labels.includes("traefik.enable=true")) { - labels.push("traefik.enable=true"); - } - labels.push(...httpLabels); + if (Array.isArray(labels)) { + if (!labels.includes("traefik.enable=true")) { + labels.push("traefik.enable=true"); } + labels.push(...httpLabels); } // Add the dokploy-network to the service