# syntax=docker/dockerfile:1 # BUILD STAGE FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ # Install all dependencies, dev dependencies needed for build RUN npm ci COPY . . # Build TypeScript RUN npm run build # PRODUCTION STAGE FROM node:22-alpine AS production WORKDIR /app COPY package*.json ./ # Install only production dependencies RUN npm ci --omit=dev # Copy .env.docker to .env to silence Docker warning COPY .env.docker .env # Copy compiled code from builder stage COPY --from=builder /app/dist ./dist # Create non-root user for security RUN addgroup -g 1001 -S nodejs && \ adduser -S nodejs -u 1001 && \ chown -R nodejs:nodejs /app USER nodejs EXPOSE 3000 CMD ["npm", "start"]