From 643bf36fd8657dfdbff3f6272ed75b97c8346c06 Mon Sep 17 00:00:00 2001 From: Nikola Jokic <97525037+nikola-jokic@users.noreply.github.com> Date: Mon, 13 Jun 2022 17:13:47 +0200 Subject: [PATCH] docker apply env on commands where we are using '-e' (#11) * added wrapper for docker -e to apply env * added envs around services as well * added wrapping environment around execute command * fixed setting the env variable for containerRun * added env to exec and not to handle envs by ourself * returned back the comment to run-container-step --- packages/docker/src/dockerCommands/container.ts | 12 ++++++------ packages/docker/src/hooks/prepare-job.ts | 2 ++ packages/docker/src/utils.ts | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/docker/src/dockerCommands/container.ts b/packages/docker/src/dockerCommands/container.ts index 8e3bc04..f3d9246 100644 --- a/packages/docker/src/dockerCommands/container.ts +++ b/packages/docker/src/dockerCommands/container.ts @@ -69,7 +69,9 @@ export async function createContainer( } } - const id = (await runDockerCommand(dockerArgs)).trim() + const id = ( + await runDockerCommand(dockerArgs, { env: args.environmentVariables }) + ).trim() if (!id) { throw new Error('Could not read id from docker command') } @@ -352,7 +354,7 @@ export async function containerExecStep( for (const entryPointArg of args.entryPointArgs) { dockerArgs.push(entryPointArg) } - await runDockerCommand(dockerArgs) + await runDockerCommand(dockerArgs, { env: args.environmentVariables }) } export async function containerRun( @@ -376,9 +378,7 @@ export async function containerRun( dockerArgs.push(...args.createOptions.split(' ')) } if (args.environmentVariables) { - for (const [key, value] of Object.entries(args.environmentVariables)) { - // Pass in this way to avoid printing secrets - env[key] = value ?? undefined + for (const [key] of Object.entries(args.environmentVariables)) { dockerArgs.push('-e') dockerArgs.push(key) } @@ -408,7 +408,7 @@ export async function containerRun( } } - await runDockerCommand(dockerArgs) + await runDockerCommand(dockerArgs, { env: args.environmentVariables }) } export async function isContainerAlpine(containerId: string): Promise { diff --git a/packages/docker/src/hooks/prepare-job.ts b/packages/docker/src/hooks/prepare-job.ts index 599ff97..4a631a9 100644 --- a/packages/docker/src/hooks/prepare-job.ts +++ b/packages/docker/src/hooks/prepare-job.ts @@ -48,6 +48,7 @@ export async function prepareJob( } finally { await registryLogout(configLocation) } + containerMetadata = await createContainer( container, generateContainerName(container.image), @@ -78,6 +79,7 @@ export async function prepareJob( generateContainerName(service.image), networkName ) + servicesMetadata.push(response) await containerStart(response.id) } diff --git a/packages/docker/src/utils.ts b/packages/docker/src/utils.ts index 69580fe..fd974c5 100644 --- a/packages/docker/src/utils.ts +++ b/packages/docker/src/utils.ts @@ -9,6 +9,7 @@ const exec = require('@actions/exec') export interface RunDockerCommandOptions { workingDir?: string input?: Buffer + env?: { [key: string]: string } } export async function runDockerCommand(