diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 6af5f0c..f6f2951 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,6 +5,8 @@ + + diff --git a/4600Pro/OpenClaw/.env b/4600Pro/OpenClaw/.env index 87c97e4..bc6fd34 100644 --- a/4600Pro/OpenClaw/.env +++ b/4600Pro/OpenClaw/.env @@ -1,18 +1,13 @@ -# 官方镜像 OPENCLAW_IMAGE=ghcr.io/openclaw/openclaw:latest +# OpenClaw 内部 Gateway 端口 +OPENCLAW_GATEWAY_PORT=18789 -# 你希望 Web UI 使用 2800 -OPENCLAW_GATEWAY_PORT=2800 +# Bridge 内部端口 +OPENCLAW_BRIDGE_PORT=18790 -# Bridge 保持默认 -OPENCLAW_BRIDGE_PORT=2799 - -# Docker 下使用 LAN OPENCLAW_GATEWAY_BIND=lan -# 时区 -OPENCLAW_TZ=Asia/Shanghai +OPENCLAW_GATEWAY_TOKEN=fV3cYPabGURAEH -# 先自己生成一个 -OPENCLAW_GATEWAY_TOKEN=fca0bf61230f9734a86872e08baed0f0747c4360fb94edb1cc39ab4cd370cd93 \ No newline at end of file +OPENCLAW_TZ=Asia/Shanghai \ No newline at end of file diff --git a/4600Pro/OpenClaw/docker-compose.yml b/4600Pro/OpenClaw/docker-compose.yml index 8d71267..68d1ae9 100644 --- a/4600Pro/OpenClaw/docker-compose.yml +++ b/4600Pro/OpenClaw/docker-compose.yml @@ -1,30 +1,42 @@ services: openclaw-gateway: - image: ${OPENCLAW_IMAGE} + image: ${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest} container_name: openclaw-gateway + # 你的 /volume2 无法正常 chown 给 UID 1000, + # 因此当前环境用 root 运行,解决持久化目录写权限问题 user: "0:0" env_file: - .env environment: - HOME: /home/node - OPENCLAW_HOME: /home/node - TERM: xterm-256color - OPENCLAW_STATE_DIR: /home/node/.openclaw - OPENCLAW_CONFIG_PATH: /home/node/.openclaw/openclaw.json - OPENCLAW_CONFIG_DIR: /home/node/.openclaw - OPENCLAW_WORKSPACE_DIR: /home/node/.openclaw/workspace - OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} TZ: ${OPENCLAW_TZ:-Asia/Shanghai} + HOME: /root + OPENCLAW_HOME: /root + TERM: xterm-256color + + OPENCLAW_STATE_DIR: /root/.openclaw + OPENCLAW_CONFIG_PATH: /root/.openclaw/openclaw.json + OPENCLAW_CONFIG_DIR: /root/.openclaw + OPENCLAW_WORKSPACE_DIR: /root/.openclaw/workspace + + # OpenClaw 内部始终认 18789 + OPENCLAW_GATEWAY_PORT: "18789" + OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND:-lan} + OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} + volumes: - - /volume2/docker/docker_projects/openclaw/data:/home/node/.openclaw + # 所有长期数据统一持久化 + - /volume2/docker/docker_projects/openclaw/data:/root/.openclaw ports: - - "${OPENCLAW_GATEWAY_PORT:-2800}:18789" - - "${OPENCLAW_BRIDGE_PORT:-18790}:18790" + # 宿主机 Web UI 2800 -> 容器 Gateway 18789 + - "2800:18789" + + # 如果你希望 Bridge 外部仍用 2799 + - "2799:18790" extra_hosts: - "host.docker.internal:host-gateway" @@ -38,13 +50,19 @@ services: "dist/index.js", "gateway", "--bind", - "${OPENCLAW_GATEWAY_BIND:-lan}", + "lan", "--port", "18789" ] healthcheck: - test: ["CMD", "node", "dist/docker-healthcheck.js"] + test: + [ + "CMD", + "node", + "-e", + "fetch('http://127.0.0.1:18789/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" + ] interval: 30s timeout: 5s retries: 5 @@ -52,7 +70,7 @@ services: openclaw-cli: - image: ${OPENCLAW_IMAGE} + image: ${OPENCLAW_IMAGE:-ghcr.io/openclaw/openclaw:latest} container_name: openclaw-cli user: "0:0" @@ -60,21 +78,28 @@ services: env_file: - .env + # 官方 Compose 就是让 CLI 与 Gateway 共用 network namespace network_mode: "service:openclaw-gateway" environment: - HOME: /home/node - OPENCLAW_HOME: /home/node - TERM: xterm-256color - OPENCLAW_STATE_DIR: /home/node/.openclaw - OPENCLAW_CONFIG_PATH: /home/node/.openclaw/openclaw.json - OPENCLAW_CONFIG_DIR: /home/node/.openclaw - OPENCLAW_WORKSPACE_DIR: /home/node/.openclaw/workspace - OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} TZ: ${OPENCLAW_TZ:-Asia/Shanghai} + HOME: /root + OPENCLAW_HOME: /root + TERM: xterm-256color + BROWSER: echo + + OPENCLAW_STATE_DIR: /root/.openclaw + OPENCLAW_CONFIG_PATH: /root/.openclaw/openclaw.json + OPENCLAW_CONFIG_DIR: /root/.openclaw + OPENCLAW_WORKSPACE_DIR: /root/.openclaw/workspace + + OPENCLAW_GATEWAY_PORT: "18789" + OPENCLAW_GATEWAY_BIND: ${OPENCLAW_GATEWAY_BIND:-lan} + OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN} + volumes: - - /volume2/docker/docker_projects/openclaw/data:/home/node/.openclaw + - /volume2/docker/docker_projects/openclaw/data:/root/.openclaw stdin_open: true tty: true