| # Gunakan versi Node.js yang spesifik untuk menghindari masalah yang mungkin timbul dari perubahan versi terbaru | |
| FROM node:14 | |
| # Buat direktori aplikasi | |
| WORKDIR /app | |
| # Salin package.json dan package-lock.json terlebih dahulu untuk manfaatkan caching Docker | |
| COPY package*.json ./ | |
| # Install paket yang diperlukan untuk canvas dan dependencies lainnya | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| gcc \ | |
| wget \ | |
| git \ | |
| libvips \ | |
| libcairo2-dev \ | |
| libjpeg-dev \ | |
| libpango1.0-dev \ | |
| libgif-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install semua dependencies proyek | |
| RUN npm install && npm install pm2 -g | |
| ENV PM2_PUBLIC_KEY pheqiah2qgpu45w | |
| ENV PM2_SECRET_KEY xk8zhybf7ns8ybz | |
| # Salin semua file proyek ke dalam image | |
| COPY . . | |
| # Bebaskan port yang digunakan oleh aplikasi | |
| EXPOSE 7860 | |
| # Jalankan aplikasi menggunakan pm2-runtime | |
| CMD ["node", "index.js"] |