habppyar commited on
Commit
3d1fe8b
·
verified ·
1 Parent(s): 56a9867

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -15
Dockerfile CHANGED
@@ -1,35 +1,39 @@
1
  # 基础镜像
2
  FROM node:20-slim
3
 
4
- # 1. 关键修正:先切换为 root 用户,以便进行系统级安装和权限修改
5
  USER root
6
 
7
- # 2. 关键修正:直接安装 Python 依赖到系统环境避开虚拟环境导致的 PATH 混乱
8
- # 安装 python3 和 pip,并直接用 pip 安装 huggingface_hub(不要用虚拟环境)
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
- python3 python3-pip git \
11
- && rm -rf /var/lib/apt/lists/* \
12
- # 直接升级系统 pip 并安装库(这样命令在系统路径里,谁都找得到)
13
- && pip3 install --upgrade pip huggingface_hub
14
 
15
- # 3. 关键修正安装 npm 包。因为 USER root,npm -g 会安装到 /usr/local/bin这是默认 PATH
 
 
 
 
16
  RUN npm install -g opencode-ai
17
 
18
- # 4. 设置工作目录
19
  WORKDIR /home/node/app
20
 
21
- # 5. 关键修正:将目录所有权赋予 node 用户,这样 node 用户有读写权(解决持久化/挂载目录的权限问题)
22
  RUN chown node:node /home/node/app
23
 
24
- # 6. 切换回非 root 用户(安全且解决挂载权限问题)
25
  USER node
26
 
27
- # 复制代码(此时是 node 用户身份,文件属于 node 用户)
28
  COPY --chown=node . .
29
 
30
- # 验证安装(此时 PATH 包含 /usr/local/bin,能直接找到 opencode-ai
31
- RUN opencode-ai --version && \
32
- python3 -c "import huggingface_hub; print('Success')"
 
 
 
33
 
34
  EXPOSE 7860
35
  CMD ["sh", "-c", "node server.js"]
 
1
  # 基础镜像
2
  FROM node:20-slim
3
 
4
+ # 1. 先切换为 root 用户进行系统级安装
5
  USER root
6
 
7
+ # 2. 安装系统依赖包含 python3-venv
 
8
  RUN apt-get update && apt-get install -y --no-install-recommends \
9
+ python3 python3-venv git \
10
+ && rm -rf /var/lib/apt/lists/*
 
 
11
 
12
+ # 3. 创建虚拟环境(关键:必须在 root 权限下创建但由 node 用户拥有)
13
+ RUN python3 -m venv /app/venv && \
14
+ chown -R node:node /app/venv
15
+
16
+ # 4. 安装 Node.js 全局工具
17
  RUN npm install -g opencode-ai
18
 
19
+ # 5. 设置工作目录
20
  WORKDIR /home/node/app
21
 
22
+ # 6. 将目录所有权赋予 node 用户
23
  RUN chown node:node /home/node/app
24
 
25
+ # 7. 切换回非 root 用户
26
  USER node
27
 
28
+ # 8. 复制代码
29
  COPY --chown=node . .
30
 
31
+ # 9. 在虚拟环境中安装 Python 依赖(关键:使用完整路径
32
+ RUN /app/venv/bin/pip install --upgrade pip huggingface_hub
33
+
34
+ # 10. 验证安装(使用完整路径确保找到正确的命令)
35
+ RUN /app/venv/bin/python -c "import huggingface_hub; print('Success')" && \
36
+ opencode-ai --version
37
 
38
  EXPOSE 7860
39
  CMD ["sh", "-c", "node server.js"]