summaryrefslogtreecommitdiff
path: root/worker/scripts/build_docker_image.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-07-20 17:21:38 -0700
committerElizabeth Hunt <me@liz.coffee>2025-07-20 18:31:57 -0700
commitbfdef4064b4a172a2027f3813ab88f38728d61c0 (patch)
tree94babba33cd28aaacad39b49936b803486784a73 /worker/scripts/build_docker_image.ts
parent9e220eca4545982df83ffcaa66a9b050a3d6f24e (diff)
downloadci-bfdef4064b4a172a2027f3813ab88f38728d61c0.tar.gz
ci-bfdef4064b4a172a2027f3813ab88f38728d61c0.zip
Fixes
Diffstat (limited to 'worker/scripts/build_docker_image.ts')
-rwxr-xr-xworker/scripts/build_docker_image.ts24
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 {