Spaces:
Paused
Paused
Update Dockerfile
Browse files- Dockerfile +15 -2
Dockerfile
CHANGED
|
@@ -65,7 +65,7 @@ if __name__ == "__main__":\n\
|
|
| 65 |
if len(sys.argv) > 1 and sys.argv[1] == "backup": backup()\n\
|
| 66 |
else: restore()' > /usr/local/bin/sync.py
|
| 67 |
|
| 68 |
-
# 6. 最终启动脚本 (保
|
| 69 |
RUN echo "#!/bin/bash\n\
|
| 70 |
set -e\n\
|
| 71 |
mkdir -p /root/.openclaw\n\
|
|
@@ -97,7 +97,20 @@ echo \"--- [System] 🚀 正在启动 OpenClaw Gateway... ---\"\n\
|
|
| 97 |
export NODE_ENV=production\n\
|
| 98 |
export OPENCLAW_TRUST_PROXY=true\n\
|
| 99 |
\n\
|
| 100 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
" > /usr/local/bin/start-openclaw && chmod +x /usr/local/bin/start-openclaw
|
| 102 |
|
| 103 |
EXPOSE 7860
|
|
|
|
| 65 |
if len(sys.argv) > 1 and sys.argv[1] == "backup": backup()\n\
|
| 66 |
else: restore()' > /usr/local/bin/sync.py
|
| 67 |
|
| 68 |
+
# 6. 最终启动脚本 (保留原有的配置还原与写入,仅优化进程守护)
|
| 69 |
RUN echo "#!/bin/bash\n\
|
| 70 |
set -e\n\
|
| 71 |
mkdir -p /root/.openclaw\n\
|
|
|
|
| 97 |
export NODE_ENV=production\n\
|
| 98 |
export OPENCLAW_TRUST_PROXY=true\n\
|
| 99 |
\n\
|
| 100 |
+
# 关键修复1:关闭 set -e,防止 openclaw 退出时把整个 bash 脚本带崩\n\
|
| 101 |
+
set +e\n\
|
| 102 |
+
\n\
|
| 103 |
+
# 关键修复2:将关闭信号(SIGTERM)正确传递给 openclaw,配合 HF 的生命周期管理\n\
|
| 104 |
+
trap 'kill -TERM \$PID 2>/dev/null' TERM INT\n\
|
| 105 |
+
\n\
|
| 106 |
+
# 关键修复3:使用 后台进程(&) + wait 模式,这是 Docker 中 bash 作为 PID 1 最稳定的循环方式\n\
|
| 107 |
+
while true; do\n\
|
| 108 |
+
openclaw gateway run --port 7860 &\n\
|
| 109 |
+
PID=\$!\n\
|
| 110 |
+
wait \$PID\n\
|
| 111 |
+
echo \"--- [System] ⚠️ OpenClaw 进程退出,等待 3 秒后内部重启... ---\"\n\
|
| 112 |
+
sleep 3\n\
|
| 113 |
+
done\n\
|
| 114 |
" > /usr/local/bin/start-openclaw && chmod +x /usr/local/bin/start-openclaw
|
| 115 |
|
| 116 |
EXPOSE 7860
|