FROM node:18-alpine # Setel direktori kerja di dalam kontainer WORKDIR /app # Instal git, Python 3, Chromium, FFmpeg, dan dependensi lainnya RUN apk add --no-cache \ git \ python3 \ chromium \ nss \ freetype \ freetype-dev \ harfbuzz \ ca-certificates \ ttf-freefont \ ffmpeg # Salin package.json dan package-lock.json terlebih dahulu untuk memanfaatkan caching Docker COPY package*.json ./ # Instal dependensi produksi RUN npm install --only=production --unsafe-perm=true --allow-root # Instal PM2 secara global RUN npm install -g pm2 # Tambahkan 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 lain ke direktori kerja COPY . . # Buka port 7860 EXPOSE 7860 # Jalankan aplikasi menggunakan PM2 CMD ["pm2-runtime", "index.js", "--name", "API"]