Spaces:
Paused
Paused
Update Dockerfile
Browse files- 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 |
-
#
|
| 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 |
-
#
|
| 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 |
-
#
|
| 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 |
-
#
|
| 127 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 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"]
|