huang123chuan commited on
Commit
838d0d3
·
verified ·
1 Parent(s): 58722f5

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -18
Dockerfile CHANGED
@@ -1,27 +1,30 @@
1
- # 1. 临时工:从新版本镜像里把最新的代码偷出来
2
- FROM ghcr.io/liuw1535/antigravity2api-nodejs:main AS source
3
-
4
- # 2. 真正运行的环境:使用你确认能跑通的旧版 latest(它是 x86 兼容的)
5
  FROM ghcr.io/liuw1535/antigravity2api-nodejs:latest
6
 
7
- # 3. 切换到 root 准备更新文件
 
 
 
8
  USER root
9
 
10
- # 4. 把新镜像里的最新代码覆盖到当前运行环境
11
- # 假设原项目代码在 /app
12
- COPY --from=source /app /app
13
 
14
- # 5. 修正权限(HF 需要 UID 1000
15
- RUN chown -R 1000:1000 /app
 
 
16
 
17
- # 6. 设置端口和 Secret 写入逻辑
18
  USER 1000
19
- ENV PORT=7860
 
20
  EXPOSE 7860
21
 
22
- CMD ["sh", "-c", "\
23
- mkdir -p /app/data && \
24
- echo \"$ACCOUNTS_JSON\" > /app/data/accounts.json && \
25
- echo '{\"server\":{\"port\":7860,\"host\":\"0.0.0.0\"}}' > /app/config.json && \
26
- node src/config/init-env.js && \
27
- npm start"]
 
1
+ # 1. 继承你的镜像
 
 
 
2
  FROM ghcr.io/liuw1535/antigravity2api-nodejs:latest
3
 
4
+ # 2. 切换 root 设置权限
5
+
6
+
7
+
8
  USER root
9
 
10
+ # 3. 设置端口
11
+ ENV PORT=7860
12
+
13
 
14
+ # 4. 关键:创建 data 目录并将权限交给普通用户 (UID 1000)
15
+ # 这一步必须做,否则后面的 echo 命令写不进去
16
+ RUN mkdir -p /app/data && \
17
+ chown -R 1000:1000 /app
18
 
19
+ # 5. 切换回普通用户
20
  USER 1000
21
+
22
+ # 6. 暴露端口
23
  EXPOSE 7860
24
 
25
+ # 7. 【核心修改】启动命令
26
+ # 解释:
27
+ # (1) mkdir -p ... : 确保目录存在
28
+ # (2) echo "..." > ... : 直接把 HuggingFace 的 Secret (ACCOUNTS_JSON) 写入到 accounts.json 文件
29
+ # (3) node src/server/index.js : 启动主程序 (这是原项目原本就有的入口)
30
+ CMD ["sh", "-c", "mkdir -p /app/data && echo \"$ACCOUNTS_JSON\" > /app/data/accounts.json && echo '{\"server\":{\"port\":7860,\"host\":\"0.0.0.0\"}}' > /app/config.json && node src/server/index.js"]