lm / Dockerfile
Aqso's picture
Create Dockerfile
12bd4fb verified
raw
history blame contribute delete
921 Bytes
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"]