FROM oven/bun:1-alpine AS base WORKDIR /app FROM base AS deps COPY package.json package-lock.json* ./ RUN bun install --frozen-lockfile FROM base AS builder COPY --from=deps /app/node_modules ./node_modules COPY . . RUN bun install --frozen-lockfile RUN bun run build FROM base AS runner WORKDIR /app ENV NODE_ENV production RUN addgroup --system --gid 1001 bun RUN adduser --system --uid 1001 bun COPY --from=builder /app/package.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/build ./ USER bun EXPOSE 3000 CMD ["bun", "run", "index.js"]