File size: 981 Bytes
0879cd7 76e79cc 92da0f1 76e79cc 92da0f1 d35f2b7 c7bd573 81e7316 2fa1867 98c16fd 0879cd7 92da0f1 9b02bc1 76e79cc 92da0f1 fe643d7 76e79cc 92da0f1 d35f2b7 780e721 92da0f1 81e7316 780e721 81e7316 92da0f1 76e79cc 92da0f1 76e79cc 92da0f1 4ceb020 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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"]
|