akenomainx4 commited on
Commit
8a294ef
Β·
verified Β·
1 Parent(s): 6d92394

fix: use existing node user (UID 1000) instead of useradd

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -11
Dockerfile CHANGED
@@ -1,5 +1,6 @@
1
  # ── Base image ────────────────────────────────────────────────────────────────
2
- # node:20-slim is Debian-based β€” needed for node-pty native compilation
 
3
  FROM node:20-slim
4
 
5
  # ── System dependencies ───────────────────────────────────────────────────────
@@ -11,23 +12,23 @@ RUN apt-get update && \
11
  g++ \
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
- # ── Non-root user (Hugging Face Spaces runs as UID 1000) ─────────────────────
15
- RUN useradd -m -u 1000 user
16
- USER user
17
- ENV HOME=/home/user \
18
- PATH="/home/user/.local/bin:/home/user/.npm-global/bin:${PATH}"
19
 
20
- # ── Install shellular globally (into user's npm prefix) ──────────────────────
21
- RUN npm config set prefix /home/user/.npm-global && \
22
  npm install -g shellular
23
 
24
  # ── App ───────────────────────────────────────────────────────────────────────
25
- WORKDIR /home/user/app
26
 
27
- COPY --chown=user:user package*.json ./
28
  RUN npm install --omit=dev
29
 
30
- COPY --chown=user:user . .
31
 
32
  # ── Runtime ───────────────────────────────────────────────────────────────────
33
  # Hugging Face Spaces expects port 7860
 
1
  # ── Base image ────────────────────────────────────────────────────────────────
2
+ # node:20-slim is Debian-based β€” needed for node-pty native compilation.
3
+ # It ships with a built-in "node" user at UID 1000, which is what HF Spaces uses.
4
  FROM node:20-slim
5
 
6
  # ── System dependencies ───────────────────────────────────────────────────────
 
12
  g++ \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
+ # ── Use the existing "node" user (UID 1000) ───────────────────────────────────
16
+ # node:20-slim already has a "node" user at UID 1000 β€” no need to create one.
17
+ USER node
18
+ ENV HOME=/home/node \
19
+ PATH="/home/node/.npm-global/bin:${PATH}"
20
 
21
+ # ── Install shellular globally (into the node user's prefix) ─────────────────
22
+ RUN npm config set prefix /home/node/.npm-global && \
23
  npm install -g shellular
24
 
25
  # ── App ───────────────────────────────────────────────────────────────────────
26
+ WORKDIR /home/node/app
27
 
28
+ COPY --chown=node:node package*.json ./
29
  RUN npm install --omit=dev
30
 
31
+ COPY --chown=node:node . .
32
 
33
  # ── Runtime ───────────────────────────────────────────────────────────────────
34
  # Hugging Face Spaces expects port 7860