FROM node:20-bullseye # 1. ROOT PHASE: Install dependencies & cloudflared (Wajib Root) RUN apt-get update && apt-get install -y ttyd wget curl procps sudo \ && wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \ && dpkg -i cloudflared-linux-amd64.deb \ && rm cloudflared-linux-amd64.deb \ && rm -rf /var/lib/apt/lists/* # 2. USER PHASE: Bikin user UID 1000 sesuai regulasi keamanan Hugging Face RUN useradd -m -u 1000 user USER user # 3. ENV PHASE: Arahkan semua home path & PM2 cache ke direktori user (Mencegah EACCES) ENV HOME=/home/user ENV PATH=$HOME/.local/bin:$PATH ENV PM2_HOME=$HOME/.pm2 WORKDIR $HOME/app # COPY file dengan kepemilikan user (Bukan root) COPY --chown=user:user . . # 4. BUILD PHASE RUN npm install # Install PM2 secara lokal, jangan global (-g) RUN npm install pm2 EXPOSE 7860 RUN chmod +x start.sh CMD ["./start.sh"]