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.
This commit is contained in:
Mauricio Siu
2026-08-18 15:20:55 -06:00
parent effa3ea502
commit d183018201
+13 -4
View File
@@ -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);