From d183018201c05c578a1dc26da126dc0f58c6ecc8 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Tue, 18 Aug 2026 15:20:55 -0600 Subject: [PATCH] fix: don't quote .env values for stack deploys docker stack deploy reads env_file literally without stripping quotes (unlike docker compose), so the quoting/escaping added to fix #4694 was shipping literal quote characters into stack containers. Fixes #5096, #5110. --- packages/server/src/utils/builders/compose.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/server/src/utils/builders/compose.ts b/packages/server/src/utils/builders/compose.ts index 168de7fda..31e610847 100644 --- a/packages/server/src/utils/builders/compose.ts +++ b/packages/server/src/utils/builders/compose.ts @@ -7,6 +7,7 @@ import { writeDomainsToCompose } from "../docker/domain"; import { encodeBase64, getEnvironmentVariablesObject, + prepareEnvironmentVariables, prepareEnvironmentVariablesForFile, } from "../docker/utils"; import { withResolvedVaultRefs } from "../vault"; @@ -157,10 +158,18 @@ export const getCreateEnvFileCommand = (compose: ComposeNested) => { envContent += `\nCOMPOSE_PREFIX=${compose.suffix}`; } - const envFileContent = prepareEnvironmentVariablesForFile( - envContent, - compose.environment.project.env, - compose.environment.env, + const envFileContent = ( + compose.composeType === "stack" + ? prepareEnvironmentVariables( + envContent, + compose.environment.project.env, + compose.environment.env, + ) + : prepareEnvironmentVariablesForFile( + envContent, + compose.environment.project.env, + compose.environment.env, + ) ).join("\n"); const encodedContent = encodeBase64(envFileContent);