# Build stage FROM node:20-slim AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Production stage FROM node:20-slim # Install Chromium dependencies RUN apt-get update && apt-get install -y \ chromium \ fonts-liberation \ libnss3 \ libxss1 \ libasound2 \ libatk-bridge2.0-0 \ libgtk-3-0 \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY --from=builder /app/dist ./dist # Create local images directory for when MinIO is not configured RUN mkdir -p /app/public/images/products EXPOSE 3010 CMD ["node", "dist/index.js"]