From fffe1d6249d56e14f0bad13476308e2e7a720c08 Mon Sep 17 00:00:00 2001 From: Motysten Date: Fri, 31 Jan 2025 14:15:52 +0100 Subject: [PATCH] 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 69bfa222..2548d938 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