# Build stage FROM node:20-alpine AS builder # Install pnpm RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app # Copy package files COPY package.json pnpm-lock.yaml ./ # Install dependencies RUN pnpm install --frozen-lockfile # Copy source code COPY . . # Build the application RUN pnpm run build # Production stage FROM node:20-alpine # Install pnpm RUN corepack enable && corepack prepare pnpm@latest --activate WORKDIR /app # Copy built assets and necessary files COPY --from=builder /app/dist ./dist COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/pnpm-lock.yaml ./pnpm-lock.yaml # Install only production dependencies RUN pnpm install --prod --frozen-lockfile # Copy environment variables if needed COPY .env.production ./.env # Expose the port your app runs on EXPOSE 3000 # Start the application CMD ["node", "./dist/server/entry.mjs"]