xlyu0523 commited on
Commit
4e18209
·
verified ·
1 Parent(s): aa4f5bb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -12
Dockerfile CHANGED
@@ -53,14 +53,11 @@ COPY cloudflare-keepalive-setup.py /opt/huggingmes/cloudflare-keepalive-setup.py
53
  COPY env-builder.html /opt/huggingmes/env-builder.html
54
  COPY env-builder.js /opt/huggingmes/env-builder.js
55
 
56
- # CRITICAL ROOTLESS FIX:
57
- # 1. 强力抹除 Windows 换行符。
58
- # 2. 对整个工作空间刷成 777,确保在任何低权限随机 UID 下进程都有完全的绝对读写和执行权。
59
  RUN sed -i 's/\r$//' /opt/huggingmes/start.sh && \
60
- chmod -R 777 /opt/huggingmes && \
61
- mkdir -p /opt/data && chmod -R 777 /opt/data
62
 
63
- # 4. 保留原项目看板数据库迁移幂等补丁
64
  RUN python3 - <<'PY'
65
  import sys
66
  try:
@@ -103,14 +100,14 @@ except Exception as e:
103
  print(f"kanban patch: error ({e}), skipping", file=sys.stderr)
104
  PY
105
 
106
- # 5. 坚决维持原项目持久化存储桶挂载路径 /opt/data
107
  RUN echo 'export PATH="/opt/hermes/.venv/bin:/opt/data/.local/bin:$PATH"' \
108
  > /etc/profile.d/hermes-venv.sh
109
 
110
- # 恢复官方默认的普通用户身份,顺应底层容器集群的沙箱降权安全策略
111
  USER hermes
112
 
113
- # 恢复官方底座标准环境变量
114
  ENV HERMES_HOME=/opt/data \
115
  HUGGINGMES_APP_DIR=/opt/huggingmes \
116
  HERMES_AGENT_VERSION=${HERMES_AGENT_VERSION} \
@@ -119,9 +116,11 @@ ENV HERMES_HOME=/opt/data \
119
 
120
  EXPOSE 7861
121
 
122
- # 维持 HF Spaces 健康检查探针
123
  HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
124
  CMD curl -fsS http://localhost:7861/health || exit 1
125
 
126
- # 顺应官方底座的启动入口将我们的 start.sh 挂载为业务服务的主入口
127
- CMD ["/opt/huggingmes/start.sh"]
 
 
 
 
53
  COPY env-builder.html /opt/huggingmes/env-builder.html
54
  COPY env-builder.js /opt/huggingmes/env-builder.js
55
 
56
+ # 4. 去除 Windows 换行符隐患并放开执行权限
 
 
57
  RUN sed -i 's/\r$//' /opt/huggingmes/start.sh && \
58
+ chmod -R 777 /opt/huggingmes
 
59
 
60
+ # 5. 保留原项目看板数据库迁移幂等补丁
61
  RUN python3 - <<'PY'
62
  import sys
63
  try:
 
100
  print(f"kanban patch: error ({e}), skipping", file=sys.stderr)
101
  PY
102
 
103
+ # 确保环境变量 PATH 在全量挂载下正常工作
104
  RUN echo 'export PATH="/opt/hermes/.venv/bin:/opt/data/.local/bin:$PATH"' \
105
  > /etc/profile.d/hermes-venv.sh
106
 
107
+ # 顺应底层用户身份
108
  USER hermes
109
 
110
+ # 核心声明:直接将整个存储桶作为唯一 HERMES_HOME 数据保存地
111
  ENV HERMES_HOME=/opt/data \
112
  HUGGINGMES_APP_DIR=/opt/huggingmes \
113
  HERMES_AGENT_VERSION=${HERMES_AGENT_VERSION} \
 
116
 
117
  EXPOSE 7861
118
 
 
119
  HEALTHCHECK --interval=30s --timeout=5s --start-period=60s \
120
  CMD curl -fsS http://localhost:7861/health || exit 1
121
 
122
+ # 💥 关键修改:清空基础镜像的 ENTRYPOINT,不再走官方 s6-overlay 流程彻底屏蔽 chown 权限地雷
123
+ ENTRYPOINT []
124
+
125
+ # 直接拉起我们的控制脚本作为 PID 1 独立执行
126
+ CMD ["/bin/bash", "/opt/huggingmes/start.sh"]