mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-01 07:50:44 +00:00
Takes the v2 tree, with packages/console, packages/web, packages/stats, packages/function, infra and sst.config.ts merged up to latest dev, and retargets V2 publishing and deploys from the v2 branch to dev.
32 lines
1.2 KiB
Docker
32 lines
1.2 KiB
Docker
FROM oven/bun:1.4.2-alpine AS base
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV BUN_RUNTIME_TRANSPILER_CACHE_PATH=0
|
|
|
|
FROM base AS pruner
|
|
|
|
COPY . .
|
|
|
|
RUN bunx turbo@2.8.13 prune @opencode/stats-server --docker --no-update-notifier --no-color
|
|
|
|
FROM base AS installer
|
|
|
|
COPY --from=pruner /app/out/json/ ./
|
|
COPY --from=pruner /app/bun.lock ./bun.lock
|
|
|
|
# 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")'
|
|
# Preserve locked transitive versions while refreshing the pruned workspace metadata.
|
|
RUN bun install --filter @opencode/stats-server --lockfile-only --ignore-scripts
|
|
RUN bun install --filter @opencode/stats-server --frozen-lockfile --production --ignore-scripts
|
|
|
|
FROM base AS runner
|
|
|
|
COPY --from=installer /app ./
|
|
COPY --from=pruner /app/out/full/ ./
|
|
|
|
WORKDIR /app/packages/stats/server
|
|
|
|
CMD ["bun", "src/stat-sync.ts"]
|