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