Lb1/docker/Dockerfile.gateway

37 lines
852 B
Docker

# Multi-stage production Dockerfile for Luxe API Gateway
FROM node:22-alpine AS builder
WORKDIR /app
# Copy monorepo configuration & package files
COPY package.json tsconfig.json pnpm-workspace.yaml ./
COPY packages/database/package.json ./packages/database/
COPY packages/shared/package.json ./packages/shared/
COPY services/gateway/package.json ./services/gateway/
# Install dependencies
RUN npm install --ignore-scripts
# Copy source code
COPY packages/database ./packages/database
COPY packages/shared ./packages/shared
COPY services/gateway ./services/gateway
# Build Prisma & TypeScript packages
RUN npm run db:generate
RUN npm run build
# Production Runner stage
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV PORT=3000
COPY --from=builder /app ./
EXPOSE 3000
CMD ["npm", "start", "--workspace=@luxe/gateway"]