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"]