From 9941e70d29c911e07aea054de335b0e10f4c0133 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Wed, 27 May 2026 06:55:44 -0500 Subject: [PATCH] fix: better dockerfile --- packages/stats/server/Dockerfile | 46 ++++++++++++-------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/packages/stats/server/Dockerfile b/packages/stats/server/Dockerfile index 07848bafe0..f5fdfca92d 100644 --- a/packages/stats/server/Dockerfile +++ b/packages/stats/server/Dockerfile @@ -1,41 +1,29 @@ -FROM oven/bun:1.3.14-alpine +FROM oven/bun:1.3.14-alpine AS base WORKDIR /app ENV NODE_ENV=production ENV BUN_RUNTIME_TRANSPILER_CACHE_PATH=0 -COPY package.json bun.lock ./ -COPY patches ./patches -COPY packages/app/package.json ./packages/app/package.json -COPY packages/console/app/package.json ./packages/console/app/package.json -COPY packages/console/core/package.json ./packages/console/core/package.json -COPY packages/console/function/package.json ./packages/console/function/package.json -COPY packages/console/mail/package.json ./packages/console/mail/package.json -COPY packages/console/resource/package.json ./packages/console/resource/package.json -COPY packages/console/support/package.json ./packages/console/support/package.json -COPY packages/core/package.json ./packages/core/package.json -COPY packages/desktop/package.json ./packages/desktop/package.json -COPY packages/effect-drizzle-sqlite/package.json ./packages/effect-drizzle-sqlite/package.json -COPY packages/enterprise/package.json ./packages/enterprise/package.json -COPY packages/function/package.json ./packages/function/package.json -COPY packages/http-recorder/package.json ./packages/http-recorder/package.json -COPY packages/llm/package.json ./packages/llm/package.json -COPY packages/opencode/package.json ./packages/opencode/package.json -COPY packages/plugin/package.json ./packages/plugin/package.json -COPY packages/script/package.json ./packages/script/package.json -COPY packages/sdk/js/package.json ./packages/sdk/js/package.json -COPY packages/slack/package.json ./packages/slack/package.json -COPY packages/stats/app/package.json ./packages/stats/app/package.json -COPY packages/stats/core/package.json ./packages/stats/core/package.json -COPY packages/stats/server/package.json ./packages/stats/server/package.json -COPY packages/storybook/package.json ./packages/storybook/package.json -COPY packages/ui/package.json ./packages/ui/package.json -COPY packages/web/package.json ./packages/web/package.json +FROM base AS pruner +COPY . . + +RUN bunx turbo@2.8.13 prune @opencode-ai/stats-server --docker --no-update-notifier --no-color + +FROM base AS installer + +COPY --from=pruner /app/out/json/ ./ + +# Bun 1.3.x needs the pruned workspace globs and lockfile metadata refreshed before the frozen production install. +RUN bun -e 'const packageJson = await Bun.file("package.json").json(); packageJson.workspaces.packages = Array.from(new Bun.Glob("packages/**/package.json").scanSync(".")).map((file) => file.slice(0, -"/package.json".length)).sort(); await Bun.write("package.json", JSON.stringify(packageJson, null, 2) + "\n")' +RUN rm -f bun.lock && bun install --lockfile-only --ignore-scripts RUN bun install --frozen-lockfile --production --ignore-scripts -COPY packages ./packages +FROM base AS runner + +COPY --from=installer /app/node_modules ./node_modules +COPY --from=pruner /app/out/full/ ./ WORKDIR /app/packages/stats/server