Files
filezzy-staging/worker/Dockerfile.prod
2026-02-04 14:16:04 +01:00

46 lines
1.2 KiB
Docker

# =============================================================================
# Worker - Production build for staging/production
# =============================================================================
# Build with tsc, run pre-compiled. Avoids ts-node-dev.
# =============================================================================
FROM node:20-bookworm-slim AS builder
WORKDIR /app
ENV NODE_OPTIONS=--max-old-space-size=1024
# Build deps for native modules if any
RUN apt-get update && apt-get install -y --no-install-recommends python3 make g++ \
&& rm -rf /var/lib/apt/lists/*
COPY package*.json ./
RUN npm install
COPY . .
RUN npx prisma generate
RUN npm run build
# Production runner (with ImageMagick, Tesseract for image-ocr)
FROM node:20-bookworm-slim AS runner
RUN apt-get update && apt-get install -y --no-install-recommends \
imagemagick \
tesseract-ocr \
tesseract-ocr-eng \
tesseract-ocr-fra \
tesseract-ocr-ara \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/prisma ./prisma
CMD ["node", "dist/index.js"]