ilhamdev commited on
Commit
df6a91e
·
verified ·
1 Parent(s): 7caa52c

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -13
Dockerfile CHANGED
@@ -1,10 +1,10 @@
1
- # Gunakan versi spesifik dari node untuk stabilitas
2
  FROM node:18-alpine
3
 
4
- # Direktori kerja dalam kontainer
5
  WORKDIR /app
6
 
7
- # Install git, Chromium, dan dependensi lainnya untuk Puppeteer serta FFmpeg
8
  RUN apk add --no-cache \
9
  git \
10
  chromium \
@@ -13,29 +13,28 @@ RUN apk add --no-cache \
13
  freetype-dev \
14
  harfbuzz \
15
  ca-certificates \
16
- ttf-freefont \
17
- ffmpeg
18
 
19
- # Salin package.json dan package-lock.json terlebih dahulu untuk memanfaatkan caching Docker
20
  COPY package*.json ./
21
 
22
- # Install dependensi produksi
23
  RUN npm install --omit=dev
24
 
25
- # Install PM2 secara global
26
  RUN npm install -g pm2
27
 
28
- # Menambahkan variabel lingkungan untuk Puppeteer
29
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
30
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
31
  PM2_PUBLIC_KEY=pheqiah2qgpu45w \
32
  PM2_SECRET_KEY=xk8zhybf7ns8ybz
33
 
34
- # Salin file dan direktori lainnya ke direktori kerja
35
  COPY . .
36
 
37
- # Buka port 7860
38
  EXPOSE 7860
39
 
40
- # Jalankan aplikasi menggunakan PM2
41
- CMD ["node", "index.js"]
 
1
+ # Use a specific version of Node for stability
2
  FROM node:18-alpine
3
 
4
+ # Set the working directory inside the container
5
  WORKDIR /app
6
 
7
+ # Install git, Chromium, and other dependencies for Puppeteer
8
  RUN apk add --no-cache \
9
  git \
10
  chromium \
 
13
  freetype-dev \
14
  harfbuzz \
15
  ca-certificates \
16
+ ttf-freefont
 
17
 
18
+ # Copy package.json and package-lock.json first to leverage Docker caching
19
  COPY package*.json ./
20
 
21
+ # Install production dependencies
22
  RUN npm install --omit=dev
23
 
24
+ # Install PM2 globally
25
  RUN npm install -g pm2
26
 
27
+ # Add environment variables for Puppeteer
28
  ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
29
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
30
  PM2_PUBLIC_KEY=pheqiah2qgpu45w \
31
  PM2_SECRET_KEY=xk8zhybf7ns8ybz
32
 
33
+ # Copy other files and directories to the working directory
34
  COPY . .
35
 
36
+ # Expose port 7860
37
  EXPOSE 7860
38
 
39
+ # Run the application using PM2
40
+ CMD ["pm2", "runtime", "index.js", "--name", "API"]