一键docker部署Openclaw中文版

作者:技术拾光时间:2026-05-05 17:01:04浏览:250

Docker-Compose部署OpenClaw 以下提供的docker-compose.yml配置文件是部署OpenClaw的高效方案。该方案逻辑清晰,通过一个独立的初始化服务来确保应用配置的可靠生成,为核心服务的稳定运行奠定了基础。 volumes: openclaw-data: service

Docker-Compose部署OpenClaw

以下提供的docker-compose.yml配置文件是部署OpenClaw的高效方案。该方案逻辑清晰,通过一个独立的初始化服务来确保应用配置的可靠生成,为核心服务的稳定运行奠定了基础。

volumes:
  openclaw-data:

services:
  openclaw-init:
    image: ghcr.io/1186258278/openclaw-zh:latest
    container_name: openclaw-init
    volumes:
      - openclaw-data:/root/.openclaw
    env_file:
      - .env
    command: >
      sh -c "
      echo '[OpenClaw] init start';
      if [ -f /root/.openclaw/openclaw.json ] && [ \"$OPENCLAW_FORCE_INIT\" != \"true\" ]; then
        echo '[OpenClaw] config exists, skip init';
        exit 0;
      fi;
      if [ \"$OPENCLAW_FORCE_INIT\" = \"true\" ]; then
        echo '[OpenClaw] force init, removing old config';
        rm -f /root/.openclaw/openclaw.json;
      fi;
      openclaw setup --non-interactive;
      openclaw config set gateway.mode local;
      openclaw config set gateway.bind lan;
      openclaw config set gateway.auth.token \"$OPENCLAW_TOKEN\";
      echo '[OpenClaw] init done';
      "
    restart: "no"

  openclaw:
    image: ghcr.io/1186258278/openclaw-zh:latest
    container_name: openclaw
    depends_on:
      openclaw-init:
        condition: service_completed_successfully
    volumes:
      - openclaw-data:/root/.openclaw
    ports:
      - \"18789:18789\"
    command: [\"openclaw\", \"gateway\", \"run\", \"--allow-unconfigured\"]
    restart: unless-stopped

环境变量配置说明

环境变量文件是部署流程的关键控制中心。其中定义的两个核心变量,直接控制着应用的初始化行为和认证机制。

# OpenClaw网关认证令牌
OPENCLAW_TOKEN=fgewsfewBhuusisdghjsohgjLB

# 是否强制重新初始化配置
# true = 每次执行 docker compose up 时都会重新运行初始化配置
# false = 仅在首次部署时进行初始化
OPENCLAW_FORCE_INIT=false

这种将配置与核心服务分离的设计优势明显:实现了配置与代码的解耦,从而兼顾了安全性与灵活性。只需修改OPENCLAW_TOKEN即可轻松更新访问密钥,而OPENCLAW_FORCE_INIT变量则充当了一个可靠的重置开关,在需要完全刷新应用配置时非常实用。