2026-04-03 14:47:18 +08:00

39 lines
1.3 KiB
Docker

FROM ghcr.io/openclaw/openclaw:latest
USER root
# 安装 tini 进程管理器
RUN curl -fsSL https://github.com/krallin/tini/releases/download/v0.19.0/tini-static -o /home/node/tini && chmod +x /home/node/tini
# 安装 skillhub
RUN curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash
RUN cp /root/.local/bin/skillhub /usr/local/bin/skillhub && chmod +x /usr/local/bin/skillhub && mkdir -p /workspace/default && chmod 1777 /workspace/default
# 创建 gateway-watchdog.sh 守护脚本
RUN printf '%s\n' \
'#!/usr/bin/env bash' \
'set -euo pipefail' \
'' \
'while true; do' \
' echo "Starting gateway..."' \
' openclaw gateway --allow-unconfigured' \
' EXIT_CODE=$?' \
' echo "Gateway exited with code $EXIT_CODE, restarting in 2s..."' \
' sleep 2' \
'done' > /usr/local/bin/gateway-watchdog.sh && chmod +x /usr/local/bin/gateway-watchdog.sh
# 替换 SOUL.md 和 IDENTITY.md
COPY SOUL.md /app/docs/reference/templates/SOUL.md
COPY IDENTITY.md /app/docs/reference/templates/IDENTITY.md
# 添加 node-remote-connect skill
COPY node-remote-connect /app/skills/node-remote-connect
# 确保权限正确
RUN chown -R node:node /app/skills/node-remote-connect
USER node
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/home/node/tini", "--", "/usr/local/bin/gateway-watchdog.sh"]