| # Gunakan versi spesifik dari node untuk stabilitas | |
| FROM node:18-alpine | |
| # Direktori kerja dalam kontainer | |
| WORKDIR /app | |
| # Install git dan dependensi lainnya untuk Puppeteer | |
| RUN apk add --no-cache git \ | |
| chromium \ | |
| nss \ | |
| freetype \ | |
| freetype-dev \ | |
| harfbuzz \ | |
| ca-certificates \ | |
| ttf-freefont | |
| # Salin package.json dan package-lock.json terlebih dahulu untuk manfaatkan caching Docker | |
| COPY package*.json ./ | |
| # Install dependensi | |
| RUN npm install --production | |
| # Menambahkan variabel lingkungan untuk Puppeteer | |
| ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ | |
| PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser | |
| # Salin file dan direktori lainnya ke direktori kerja | |
| COPY . . | |
| # Buka port 7860 | |
| EXPOSE 7860 | |
| # Jalankan aplikasi | |
| CMD ["node", "index.js"] | |