Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142FROM node:24-slim AS manifestsWORKDIR /appRUN corepack enableCOPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./COPY patches ./patches
FROM manifests AS depsRUN corepack pnpm install --frozen-lockfile
# adapter-bun bundles devDependencies into build/, so the runtime only needs these.# pnpm's own state files carry the install time, and nothing at runtime reads themFROM manifests AS prod-depsRUN corepack pnpm install --frozen-lockfile --prod \ && rm node_modules/.modules.yaml node_modules/.pnpm-workspace-state-v1.json
FROM node:24-slim AS buildWORKDIR /appRUN corepack enableCOPY --from=oven/bun:1.4.4-slim /usr/local/bin/bun /usr/local/bin/bunCOPY --from=deps /app/node_modules ./node_modulesCOPY . .# vite.config.ts falls back to the prod oauth client when these are unsetARG VITE_OAUTH_CLIENT_IDARG VITE_OAUTH_REDIRECT_URIARG APP_VERSIONRUN corepack pnpm run build
FROM oven/bun:1.4.4-slimWORKDIR /appENV NODE_ENV=productionENV HOST=0.0.0.0ENV PORT=3000ENV BUN_FEATURE_FLAG_EXPERIMENTAL_HTTP2_CLIENT=1# the 2.0 default peaks above node's memory, 1.6 doesn't and still beats node on cpu# vs node on prod pages: 1.41x req/s, 9.9 vs 14.0 ms cpu per page, 359 vs 379 MB peakENV BUN_JSC_smallHeapGrowthFactor=1.6COPY --from=build /app/build ./buildCOPY --from=build /app/package.json ./package.jsonCOPY --from=prod-deps /app/node_modules ./node_modulesEXPOSE 3000CMD ["bun", "build/index.js"]