| # Menggunakan image Node.js terbaru sebagai base image | |
| FROM node:latest | |
| # Memperbarui paket dan menginstal dependensi tambahan | |
| RUN apt-get update && apt-get install -y \ | |
| chromium \ | |
| ffmpeg \ | |
| imagemagick \ | |
| libnss3-dev \ | |
| webp && \ | |
| apt-get clean | |
| # Menetapkan variabel lingkungan | |
| ENV CHROME_BIN=/usr/bin/chromium \ | |
| TZ=Asia/Jakarta | |
| # Menentukan direktori kerja di dalam container | |
| WORKDIR /app | |
| # Menyalin file package.json dan package-lock.json ke dalam container | |
| COPY package*.json ./ | |
| # Menginstal dependensi yang diperlukan, termasuk PM2 | |
| RUN npm install && npm install pm2 -g | |
| ENV PM2_PUBLIC_KEY pheqiah2qgpu45w | |
| ENV PM2_SECRET_KEY xk8zhybf7ns8ybz | |
| # Menyalin semua file dari direktori lokal ke dalam direktori kerja di container | |
| COPY . . | |
| # Mengekspos port yang akan digunakan oleh aplikasi | |
| EXPOSE 7860 | |
| # Menjalankan aplikasi menggunakan pm2-runtime | |
| CMD ["pm2-runtime", "start", "index.js", "--name", "HELPER"] | |