FROM node:20-slim AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # ── Runtime ──────────────────────────────────────────────────────── FROM node:20-slim WORKDIR /app # Chromium + Deps für Puppeteer RUN apt-get update && apt-get install -y \ chromium \ fonts-freefont-ttf \ fonts-noto-color-emoji \ ca-certificates \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # Puppeteer soll system-chromium nutzen (kein eigener Download) ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium COPY --from=builder /app/package*.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist ENV HOST=0.0.0.0 ENV PORT=4321 ENV NODE_ENV=production ENV DB_PATH=/app/data/lebenslauf.db EXPOSE 4321 CMD ["node", "./dist/server/entry.mjs"]