diff options
author | Elizabeth Hunt <me@liz.coffee> | 2025-07-20 17:21:38 -0700 |
---|---|---|
committer | Elizabeth Hunt <me@liz.coffee> | 2025-07-20 18:31:57 -0700 |
commit | bfdef4064b4a172a2027f3813ab88f38728d61c0 (patch) | |
tree | 94babba33cd28aaacad39b49936b803486784a73 /worker/scripts/build_docker_image.ts | |
parent | 9e220eca4545982df83ffcaa66a9b050a3d6f24e (diff) | |
download | ci-bfdef4064b4a172a2027f3813ab88f38728d61c0.tar.gz ci-bfdef4064b4a172a2027f3813ab88f38728d61c0.zip |
Fixes
Diffstat (limited to 'worker/scripts/build_docker_image.ts')
-rwxr-xr-x | worker/scripts/build_docker_image.ts | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/worker/scripts/build_docker_image.ts b/worker/scripts/build_docker_image.ts index f29bd61..31bd260 100755 --- a/worker/scripts/build_docker_image.ts +++ b/worker/scripts/build_docker_image.ts @@ -10,7 +10,7 @@ import { Command, } from '@emprespresso/pengueno'; import type { BuildDockerImageJob, BuildDockerImageJobProps } from '@emprespresso/ci_model'; -import { Bitwarden, type LoginItem } from '@emprespresso/ci_worker'; +import { Bitwarden, getPathOnHost, type LoginItem } from '@emprespresso/ci_worker'; import path from 'path'; const job = getRequiredEnvVars([ @@ -78,9 +78,14 @@ await LogMetricTraceable.ofLogTraceable(_logJob) .map(async (tEitherWithAuthdRegistryBuildJob) => { const eitherWithAuthdRegistryBuildJob = await tEitherWithAuthdRegistryBuildJob.get(); tEitherWithAuthdRegistryBuildJob.trace.trace('finally building the image~ (◕ᴗ◕✿)'); - const eitherBuiltImage = await eitherWithAuthdRegistryBuildJob.flatMapAsync((job) => + const context = await eitherWithAuthdRegistryBuildJob.flatMapAsync((j) => getPathOnHost(j.arguments.context)); + const buildJobArgs = eitherWithAuthdRegistryBuildJob.joinRight(context, (context, job) => ({ + ...job.arguments, + context, + })); + const eitherBuiltImage = await buildJobArgs.flatMapAsync((buildJobArgs) => tEitherWithAuthdRegistryBuildJob - .move(getBuildCommand(job.arguments)) + .move(getBuildCommand(buildJobArgs)) .map((tBuildCmd) => getStdout(tBuildCmd, { env: {}, @@ -123,18 +128,7 @@ function getDockerLoginCommand(username: string, registry: string): Command { } function getBuildCommand({ buildTarget, imageTag, dockerfile, context }: BuildDockerImageJobProps): Command { - return [ - 'cat', - path.join(context, dockerfile), - '|', - 'docker', - 'build', - '--target', - buildTarget, - '-t', - imageTag, - '-', - ]; + return ['docker', 'build', '--target', buildTarget, '-t', imageTag, '-f', dockerfile, context]; } function getPushCommand(tag: string): Command { |