kyle-ai commited on
Commit
5e82850
·
verified ·
1 Parent(s): a813e41

Update Dockerfile

Browse files
Files changed (1) hide show
  1. 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. 最终启动脚本 (保持你 Gateway 配置,移除了打印)
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
- exec openclaw gateway run --port 7860\n\
 
 
 
 
 
 
 
 
 
 
 
 
 
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