Aqso commited on
Commit
12bd4fb
·
verified ·
1 Parent(s): aee026e

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -0
Dockerfile ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM node:20-bullseye
2
+
3
+ # 1. ROOT PHASE: Install dependencies & cloudflared (Wajib Root)
4
+ RUN apt-get update && apt-get install -y ttyd wget curl procps sudo \
5
+ && wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \
6
+ && dpkg -i cloudflared-linux-amd64.deb \
7
+ && rm cloudflared-linux-amd64.deb \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # 2. USER PHASE: Bikin user UID 1000 sesuai regulasi keamanan Hugging Face
11
+ RUN useradd -m -u 1000 user
12
+ USER user
13
+
14
+ # 3. ENV PHASE: Arahkan semua home path & PM2 cache ke direktori user (Mencegah EACCES)
15
+ ENV HOME=/home/user
16
+ ENV PATH=$HOME/.local/bin:$PATH
17
+ ENV PM2_HOME=$HOME/.pm2
18
+
19
+ WORKDIR $HOME/app
20
+
21
+ # COPY file dengan kepemilikan user (Bukan root)
22
+ COPY --chown=user:user . .
23
+
24
+ # 4. BUILD PHASE
25
+ RUN npm install
26
+ # Install PM2 secara lokal, jangan global (-g)
27
+ RUN npm install pm2
28
+
29
+ EXPOSE 7860
30
+
31
+ RUN chmod +x start.sh
32
+ CMD ["./start.sh"]