Files

50 lines
983 B
Docker
Raw Permalink Normal View History

FROM node:20-alpine AS builder
WORKDIR /app
# Copy package files
COPY package.json pnpm-lock.yaml ./
COPY packages/*/package.json ./packages/*/
COPY services/dataroom/package.json ./services/dataroom/
# Install pnpm
RUN npm install -g pnpm
# Install dependencies
RUN pnpm install --frozen-lockfile
# Copy source code
COPY . .
# Build
RUN pnpm build --filter=@the-order/dataroom-service
FROM node:20-alpine AS runner
WORKDIR /app
# Copy package files
COPY package.json pnpm-lock.yaml ./
COPY packages/*/package.json ./packages/*/
COPY services/dataroom/package.json ./services/dataroom/
# Install pnpm
RUN npm install -g pnpm
# Install production dependencies
RUN pnpm install --frozen-lockfile --prod
# Copy built files
COPY --from=builder /app/services/dataroom/dist ./services/dataroom/dist
COPY --from=builder /app/packages ./packages
WORKDIR /app/services/dataroom
EXPOSE 4004
# Graceful shutdown signal handling
STOPSIGNAL SIGTERM
CMD ["node", "dist/index.js"]