FROM docker.io/oven/bun:alpine AS base ENV NODE_ENV=production RUN apk add openssl WORKDIR /app RUN chown -R bun:bun /app USER bun COPY tsconfig.build.json ./ COPY tsconfig.json ./ COPY package.json ./ COPY bun.lock ./ RUN bun install --ignore-scripts --production --frozen-lockfile FROM base AS builder COPY prisma ./prisma/ RUN bun install --ignore-scripts --frozen-lockfile && bunx prisma generate COPY . . RUN bun run build FROM base AS runner COPY --from=builder /app/dist ./dist COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/node_modules/.prisma/client ./node_modules/.prisma/client EXPOSE 4000 CMD bun prisma migrate deploy && bun run dist/src/app