FROM node:18-alpine # Install Chromium and dependencies for Puppeteer RUN apk add --no-cache \ chromium \ nss \ freetype \ freetype-dev \ harfbuzz \ ca-certificates \ ttf-freefont # Tell Puppeteer to skip installing Chromium. We'll be using the installed package. ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser WORKDIR /app # Copy package files COPY services/crawler/package*.json ./ COPY packages/database/package*.json ./packages/database/ COPY packages/shared/package*.json ./packages/shared/ COPY packages/types/package*.json ./packages/types/ # Install dependencies RUN npm ci --only=production # Copy source code COPY services/crawler/src ./src COPY packages ./packages # Build the application RUN npm run build EXPOSE 3001 CMD ["npm", "start"]