FROM oven/bun:alpine AS base RUN apk update && apk add --no-cache libc6-compat ## INSTALLER - install deps and build FROM base AS installer WORKDIR /app COPY package.json bun.lock ./ RUN --mount=type=cache,target=/root/.bun/install/cache,sharing=shared \ bun install --frozen-lockfile COPY . . RUN bun run build ## RUNNER - minimal production image FROM base AS runner WORKDIR /app RUN addgroup --system --gid 1001 bunjs && \ adduser --system --uid 1001 web COPY --from=installer --chown=web:bunjs /app/.output ./.output USER web CMD ["bun", ".output/server/index.mjs"]