FROM node:20 # 1. Menambahkan variabel lingkungan untuk mencegah prompt interaktif saat instalasi ENV DEBIAN_FRONTEND=noninteractive WORKDIR /app # 2. Instal FFmpeg, ImageMagick, dan utilitas penting lainnya # - FFmpeg: Untuk pemrosesan video, audio, dan beberapa konversi gambar. # - imagemagick: Utilitas baris perintah yang sangat baik untuk manipulasi gambar. # - build-essential: Diperlukan untuk mengkompilasi modul Node.js yang memiliki binding C/C++ (node-gyp). # - git: Sudah ada di kode Anda, tapi saya biarkan di sini. # - libtool, automake, autoconf: Berguna jika Anda perlu mengkompilasi paket dari source. # - ca-certificates: Penting untuk memastikan permintaan HTTPS bekerja dengan benar. RUN apt-get update \ && apt-get install -y \ ffmpeg \ imagemagick \ build-essential \ git \ libtool \ automake \ autoconf \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # 3. Hapus variabel lingkungan untuk clean-up (opsional) ENV DEBIAN_FRONTEND= # Set folder ownership agar npm bisa install RUN chown -R node:node /app USER node # Copy script start.sh COPY start.sh . # Copy package.json dan package-lock.json (praktik terbaik untuk caching layer) # Jika Anda tidak melakukan install di Dockerfile ini, Anda bisa mengabaikannya # COPY package*.json ./ # Expose port EXPOSE 7860 # Jalankan script tanpa chmod CMD ["bash", "start.sh"]