Files
notify/backend/Dockerfile
Michael Dong a98e12f286 first commit
2026-02-05 11:24:40 +08:00

45 lines
747 B
Docker

# Build stage
FROM node:20-alpine AS builder
WORKDIR /app
# Copy package files
COPY package*.json ./
COPY prisma ./prisma/
# Install dependencies
RUN npm ci
# Generate Prisma client
RUN npx prisma generate
# Copy source code
COPY . .
# Build TypeScript
RUN npm run build
# Production stage
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
# Copy package files and install production dependencies only
COPY package*.json ./
COPY prisma ./prisma/
RUN npm ci --omit=dev
# Generate Prisma client in production
RUN npx prisma generate
# Copy built files from builder
COPY --from=builder /app/dist ./dist
# Run migrations and start the app
EXPOSE 4000
CMD ["sh", "-c", "npx prisma migrate deploy && node dist/index.js"]