# Gunakan base image Node.js versi 20 FROM node:20.19.1 # Tambahkan PATH lokal ENV PATH="/home/user/.local/bin:$PATH" # Install Chromium dependencies untuk Puppeteer RUN apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ git \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /app # Arg untuk memaksa rebuild cache (opsional) # ARG CACHEBUST=1 # Pastikan Docker BuildKit aktif sebelum build # Mengambil kode dari repo private menggunakan secret RUN --mount=type=secret,id=GITHUB_REPO,required=true \ git clone -b huggingface $(cat /run/secrets/GITHUB_REPO) --depth=1 . # Install yarn dan dependencies RUN yarn install # Build aplikasi RUN yarn run build # Ubah kepemilikan direktori ke user `node` RUN chown -R node:node /app # Ganti ke user non-root USER node # Buka port untuk aplikasi EXPOSE 7860 # Jalankan aplikasi CMD ["node", "index.js"]