diff --git a/packages/containers/bun-node/Dockerfile b/packages/containers/bun-node/Dockerfile index 69c7803964..31a3bb547a 100644 --- a/packages/containers/bun-node/Dockerfile +++ b/packages/containers/bun-node/Dockerfile @@ -2,7 +2,7 @@ ARG REGISTRY=ghcr.io/anomalyco FROM ${REGISTRY}/build/base:24.04 ARG NODE_VERSION=24.4.0 -ARG BUN_VERSION=1.2.4 +ARG BUN_VERSION=1.3.5 ENV BUN_INSTALL=/opt/bun ENV PATH=/opt/bun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin diff --git a/packages/containers/script/build.ts b/packages/containers/script/build.ts index 8fd6a7d4db..0ace107310 100644 --- a/packages/containers/script/build.ts +++ b/packages/containers/script/build.ts @@ -2,25 +2,36 @@ import { $ } from "bun" -const dir = new URL("..", import.meta.url).pathname -process.chdir(dir) +const rootDir = new URL("../../..", import.meta.url).pathname +process.chdir(rootDir) const reg = process.env.REGISTRY ?? "ghcr.io/anomalyco" const tag = process.env.TAG ?? "24.04" const push = process.argv.includes("--push") || process.env.PUSH === "1" +const root = new URL("package.json", new URL(rootDir)).pathname +const pkg = await Bun.file(root).json() +const manager = pkg.packageManager ?? "" +const bun = manager.startsWith("bun@") ? manager.slice(4) : "" +if (!bun) throw new Error("packageManager must be bun@") + const images = ["base", "bun-node", "rust", "tauri-linux", "publish"] for (const name of images) { const image = `${reg}/build/${name}:${tag}` const file = `packages/containers/${name}/Dockerfile` - const arg = name === "base" ? "" : `--build-arg REGISTRY=${reg}` - console.log(`docker build -f ${file} -t ${image} ${arg} .`) - if (arg) { - await $`docker build -f ${file} -t ${image} --build-arg REGISTRY=${reg} .` - } else { + if (name === "base") { + console.log(`docker build -f ${file} -t ${image} .`) await $`docker build -f ${file} -t ${image} .` } + if (name === "bun-node") { + console.log(`docker build -f ${file} -t ${image} --build-arg REGISTRY=${reg} --build-arg BUN_VERSION=${bun} .`) + await $`docker build -f ${file} -t ${image} --build-arg REGISTRY=${reg} --build-arg BUN_VERSION=${bun} .` + } + if (name !== "base" && name !== "bun-node") { + console.log(`docker build -f ${file} -t ${image} --build-arg REGISTRY=${reg} .`) + await $`docker build -f ${file} -t ${image} --build-arg REGISTRY=${reg} .` + } if (push) { await $`docker push ${image}`