fix: build args docker compose

This commit is contained in:
Andras Bacsai 2023-01-17 10:00:27 +01:00
parent 335b36d3a9
commit ccd84fa454
2 changed files with 24 additions and 8 deletions

View File

@ -52,17 +52,23 @@ export default async function (data) {
} }
value['environment'] = [...environment, ...envs]; value['environment'] = [...environment, ...envs];
let build = typeof value['build'] === 'undefined' ? {} : value['build']; let build = typeof value['build'] === 'undefined' ? [] : value['build'];
if (typeof build === 'string') { if (typeof build === 'string') {
build = { context: build } build = { context: build };
} }
let buildArgs = typeof build['args'] === 'undefined' ? [] : value['args']; const buildArgs = typeof build['args'] === 'undefined' ? [] : build['args'];
let finalArgs = [...buildEnvs];
if (Object.keys(buildArgs).length > 0) { if (Object.keys(buildArgs).length > 0) {
buildArgs = Object.entries(buildArgs).map(([key, value]) => `${key}=${value}`); for (const arg of buildArgs) {
const [key, _] = arg.split('=');
if (finalArgs.filter((env) => env.startsWith(key)).length === 0) {
finalArgs.push(arg);
}
}
} }
value['build'] = { value['build'] = {
...build, ...build,
args: [...buildArgs, ...buildEnvs] args: finalArgs
}; };
value['labels'] = labels; value['labels'] = labels;

View File

@ -55,12 +55,22 @@ export default async function (data) {
value['environment'] = [...environment, ...envs]; value['environment'] = [...environment, ...envs];
let build = typeof value['build'] === 'undefined' ? [] : value['build']; let build = typeof value['build'] === 'undefined' ? [] : value['build'];
if (Object.keys(build).length > 0) { if (typeof build === 'string') {
build = Object.entries(build).map(([key, value]) => `${key}=${value}`); build = { context: build };
}
const buildArgs = typeof build['args'] === 'undefined' ? [] : build['args'];
let finalArgs = [...buildEnvs];
if (Object.keys(buildArgs).length > 0) {
for (const arg of buildArgs) {
const [key, _] = arg.split('=');
if (finalArgs.filter((env) => env.startsWith(key)).length === 0) {
finalArgs.push(arg);
}
}
} }
value['build'] = { value['build'] = {
...build, ...build,
args: [...(build?.args || []), ...buildEnvs] args: finalArgs
}; };
value['labels'] = labels; value['labels'] = labels;