api / Dockerfile
ilhamdev's picture
Update Dockerfile
9800a9c verified
raw
history blame
981 Bytes
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"]