OpenClaw AI 助手 Docker Compose 一键部署文档(可下载)

OpenClaw AI 助手 Docker Compose 一键部署文档(可下载)

一、文档说明

本文档为 OpenClaw AI 助手的 Docker Compose 一键部署完整手册,包含目录结构、核心配置文件、快速上手步骤、常用运维命令及问题排查,适配新手使用,所有配置文件可直接复制落地,部署完成后可实现多平台(Telegram/Web)聊天交互及基础 AI 技能调用。

适用环境:Docker 20.10+、Docker Compose v2+,支持 Linux(Ubuntu 22.04+ 推荐)/ macOS / Windows(WSL2)。

二、部署目录结构

先按以下目录结构创建文件夹(确保文件层级正确,避免部署失败):

plain 复制代码
openclaw-deploy/          # 主部署目录(可自定义名称)
├── docker-compose.yml    # 核心部署配置文件(必选)
├── config.yaml           # OpenClaw 核心配置文件(必选)
├── gateway-config.yaml   # 网关配置文件(必选)
└── data/                 # 数据存储目录(自动生成,无需手动创建)

三、核心配置文件(可直接复制使用)

3.1 docker-compose.yml(核心部署文件)

作用:定义容器服务、网络、数据卷,实现核心服务与网关服务的隔离部署,自带资源限制和自动重启配置。

yaml 复制代码
# OpenClaw AI 助手 Docker Compose 配置
# 版本适配 Docker Compose v2+
version: '3.8'

# 定义网络(隔离容器通信,避免端口冲突)
networks:
  openclaw-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16  # 自定义子网,避免与其他容器网络冲突

# 定义数据卷(持久化存储日志、文件、缓存等数据,防止容器删除后数据丢失)
volumes:
  openclaw-data:  # 主数据存储卷
  openclaw-config:  # 配置文件备份卷

services:
  # OpenClaw 核心服务(负责 AI 推理、技能调度,核心中枢)
  openclaw-core:
    # 优先使用官方镜像,若无官方镜像则自动构建(兼容本地开发场景)
    image: openclaw/core:latest
    build:
      context: .
      dockerfile: Dockerfile.core  # 备用构建文件(可选,无需修改)
    container_name: openclaw-core  # 容器名称,便于后续运维
    restart: always  # 容器异常时自动重启,保证服务稳定性
    environment:
      - TZ=Asia/Shanghai  # 时区配置,避免日志时间错乱
      - PYTHONUNBUFFERED=1  # 实时输出日志,便于排查问题
    volumes:
      - ./config.yaml:/app/config.yaml:ro  # 只读挂载核心配置,防止误修改
      - openclaw-data:/app/data  # 持久化挂载数据目录
      - openclaw-config:/app/config-backup  # 配置文件自动备份
    networks:
      - openclaw-network
    # 资源限制(避免占用过多服务器资源,可根据服务器配置调整)
    deploy:
      resources:
        limits:
          cpus: '1'  # 限制使用 1 个 CPU 核心
          memory: 2G  # 限制使用 2G 内存

  # OpenClaw 网关服务(负责多平台聊天接口对接,消息收发)
  openclaw-gateway:
    image: openclaw/gateway:latest
    container_name: openclaw-gateway
    restart: always
    ports:
      - "8080:8080"  # Web 聊天界面端口(外部可访问)
      - "8081:8081"  # 网关与核心服务内部通信端口
    environment:
      - TZ=Asia/Shanghai
      - CORE_SERVICE_HOST=openclaw-core  # 指向核心服务容器,自动解析地址
    volumes:
      - ./gateway-config.yaml:/app/gateway-config.yaml:ro  # 只读挂载网关配置
      - openclaw-data:/app/data  # 共享数据目录,与核心服务同步
    networks:
      - openclaw-network
    # 依赖核心服务启动(避免网关先启动导致连接失败)
    depends_on:
      - openclaw-core
    deploy:
      resources:
        limits:
          cpus: '0.5'  # 限制使用 0.5 个 CPU 核心
          memory: 1G  # 限制使用 1G 内存

3.2 config.yaml(OpenClaw 核心配置)

作用:配置 AI 模型、技能开关,所有必填项已标注「必改」,新手只需替换密钥即可使用。

yaml 复制代码
# ==================== 核心 LLM 配置(必改)====================
llm:
  # 模型提供商:可选值(openai/qwen/claude/ernie/chatglm)
  provider: "openai"
  # 替换为你的大模型 API Key(必填,否则无法调用 AI 能力)
  api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  # 模型名称(根据提供商调整,示例为 OpenAI GPT-3.5)
  model: "gpt-3.5-turbo"
  # 国内模型需修改此地址(示例:通义千问地址 https://dashscope.aliyuncs.com/compatible-mode/v1)
  base_url: "https://api.openai.com/v1"
  # 单次回复最大令牌数(新手建议 1000-2000,平衡响应速度和回复长度)
  max_tokens: 1500
  # 随机性(0-1,越小越精准,越大越有创意,新手建议 0.6-0.8)
  temperature: 0.6

# ==================== 技能配置(按需开启)====================
skills:
  web_browser: true        # 网页浏览能力(开启后可让 AI 访问网页)
  file_system: true        # 文件操作能力(仅能访问 data 目录,安全隔离)
  search: false            # 搜索引擎能力(开启需配置下方 serpapi_key)
  automation: false        # 自动化脚本能力(新手建议先关闭,避免配置复杂)
  api_call: false          # 第三方 API 调用能力
  device_control: false    # 设备控制能力(需额外对接智能家居 API)
  # serpapi_key: "你的SerpAPI Key"  # 开启 search 技能时必填,替换为实际密钥

# ==================== 服务基础配置(无需修改)====================
service:
  host: "0.0.0.0"          # 监听所有网络地址,允许容器外部访问
  port: 8000               # 核心服务端口(与网关配置一致,无需修改)
  log_level: "INFO"        # 日志级别:DEBUG(详细)/INFO(正常)/WARN(警告)/ERROR(错误)
  log_file: "/app/data/openclaw-core.log"  # 日志存储路径,便于后续排查问题

3.3 gateway-config.yaml(网关配置)

作用:配置多平台聊天接口(Telegram/QQ/飞书/Web),新手优先配置 Telegram 和 Web 接口,快速完成测试。

yaml 复制代码
# ==================== 多平台网关配置(必改)====================
gateways:
  # Telegram 机器人(新手首选,配置最简单,易测试)
  telegram:
    enabled: true                          # 是否开启 Telegram 接口(建议开启)
    bot_token: "123456:ABC-DEF1234ghIkl"   # 替换为你的 Telegram Bot Token(必填)
    webhook: false                         # 本地测试用轮询模式,公网部署可改为 true
    webhook_url: ""                        # 公网地址(开启 webhook 时填写,本地测试留空)
  
  # QQ 机器人(需额外配置 go-cqhttp,新手建议先跳过)
  qq:
    enabled: false
    qq_account: 12345678                   # 你的 QQ 账号(开启后填写)
    ws_url: "ws://127.0.0.1:6700"          # go-cqhttp 服务地址(需提前部署)
  
  # 飞书机器人(需在飞书开放平台创建应用,新手可后续尝试)
  feishu:
    enabled: false
    app_id: "cli_xxxxxxxxxxxxxx"           # 飞书 App ID(开启后填写)
    app_secret: "xxxxxxxxxxxxxxxxxxxxxx"   # 飞书 App Secret(开启后填写)
  
  # Web 聊天界面(默认开启,无需额外配置,方便本地测试)
  webchat:
    enabled: true
    host: "0.0.0.0"
    port: 8080

# ==================== 网关与核心通信配置(无需修改)====================
core:
  host: "openclaw-core"    # Docker 内部容器名称,自动解析地址,无需修改
  port: 8000               # 核心服务端口,与核心配置一致
  timeout: 30              # 通信超时时间(秒),避免长时间等待

四、快速上手步骤(新手友好)

按照以下步骤操作,无需复杂命令,一键完成部署:

4.1 前置准备

  1. 安装 Docker 和 Docker Compose:确保已安装 Docker(20.10+)和 Docker Compose(v2+),可通过 docker -vdocker compose -v 命令验证是否安装成功。

  2. 准备密钥:提前获取 LLM API Key(如 OpenAI、通义千问)、Telegram Bot Token(创建方法见下文补充)。

4.2 部署操作

  1. 创建部署目录:新建 openclaw-deploy 文件夹(可自定义名称),将上述 3 个配置文件(docker-compose.yml、config.yaml、gateway-config.yaml)放入该文件夹。

  2. 填写密钥(必做):

    • 打开 config.yaml,替换 llm.api_key 为你的大模型 API Key;

    • 打开 gateway-config.yaml,替换 telegram.bot_token为你的 Telegram Bot Token。

  3. 启动服务:

    `# 进入部署目录(替换为你的实际目录路径)

    cd openclaw-deploy

启动所有服务(后台运行,首次启动会自动拉取镜像,稍等3-5分钟)

docker-compose up -d

查看启动日志(确认服务无报错,出现 "OpenClaw AI Core started successfully" 即正常)

docker-compose logs -f`

4.3 验证部署结果

  1. Telegram 测试:打开 Telegram,找到你的 Bot,发送 /start,若能收到 AI 回复,说明核心服务与 Telegram 网关正常。

  2. Web 聊天测试:打开浏览器,访问 http://服务器IP:8080(本地测试可访问 http://localhost:8080),打开聊天界面发送消息,能收到回复即 Web 网关正常。

  3. 容器状态检查:执行 docker-compose ps,若两个容器(openclaw-core、openclaw-gateway)的状态均为 Up,说明部署成功。

五、常用运维命令

后续维护服务时,可使用以下命令(均在部署目录下执行):

操作目的 命令 说明
启动所有服务 docker-compose up -d 后台启动,不占用终端
停止所有服务 docker-compose down 停止并删除容器,数据卷(data)保留
重启所有服务 docker-compose restart 修改配置后需执行,使配置生效
查看核心服务日志 docker-compose logs -f openclaw-core 排查 AI 核心相关报错
查看网关服务日志 docker-compose logs -f openclaw-gateway 排查聊天接口相关报错
查看容器状态 docker-compose ps 确认容器是否正常运行
删除容器+数据(谨慎) docker-compose down -v 彻底删除容器和数据卷,适用于重新部署

六、补充说明

6.1 Telegram Bot Token 获取方法

  1. 打开 Telegram,搜索 @BotFather(官方机器人);

  2. 发送 /newbot,按提示设置 Bot 名称(如 OpenClawBot)和用户名(需以 bot 结尾,如 OpenClaw_Ai_Bot);

  3. 生成成功后,会收到包含 Bot Token 的消息,复制该 Token 填入 gateway-config.yaml 即可。

6.2 国内模型配置示例(通义千问)

若使用国内大模型(如通义千问),修改 config.yaml 中的 llm 部分:

yaml 复制代码
llm:
  provider: "qwen"
  api_key: "你的通义千问API Key"  # 从通义千问开放平台获取
  model: "qwen-turbo"
  base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1"

6.3 常见问题排查

  • 容器启动失败:检查密钥是否填写正确(尤其是 API Key、Bot Token),执行 docker-compose logs 查看具体报错,优先排查网络问题(如无法访问 LLM 服务器)。

  • Web 页面无法访问:确认端口 8080 未被占用,可修改 docker-compose.yml 中的端口映射(如 8082:8080),再重启服务。

  • AI 不回复:检查核心服务日志,确认 LLM API Key 有效,且模型地址(base_url)配置正确。

  • 技能调用失败:确认对应技能在 config.yaml 中已开启(如 web_browser: true),若需 API 密钥(如 SerpAPI),需填写完整。

七、后续扩展

部署成功后,可参考以下方向扩展功能:

  1. 开启高级技能:在 config.yaml 中开启 search、automation 等技能,填写对应 API 密钥即可使用。

  2. 添加多平台接口:在 gateway-config.yaml 中开启 QQ、飞书接口,配置对应密钥和服务地址。

  3. 容器化优化:添加日志监控(Prometheus + Grafana)、数据备份策略,提升服务稳定性。

  4. 自定义技能:编写技能插件,接入专属业务能力(如本地数据库查询、自定义脚本执行)。

八、文档说明

本文档可直接复制保存为 .md 文件(Markdown 格式),下载后可离线查看、编辑;所有配置文件可直接复制到对应目录,替换占位符后即可使用,无需额外修改。

若部署过程中遇到任何问题,可查看日志排查,或提供报错信息寻求技术支持。

相关推荐
奔跑中的小象5 小时前
统信UOS + 天数AI卡部署SGLang服务手册
人工智能·uos·sglang·天数智芯
DevSecOps选型指南5 小时前
中国版Mythos,为何是悬镜安全灵脉CodeAI?
人工智能·安全
Shockang5 小时前
LangGraph 状态机实战
人工智能
刹那芳华19925 小时前
循环神经网络的从零开始实现(RNN)
人工智能·rnn·深度学习
阿童木写作5 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
科技之门5 小时前
AI3D从建模到贴图、绑骨和动画的完整流程怎么做?V2Fun完整工作流指南
人工智能·3d·贴图
宇宙第一小趴菜5 小时前
二、机器学习的应用领域和发展史
人工智能·机器学习
前端开发江鸟6 小时前
我写过 MCP Server,却一直以为 MCP 只有 Tool
人工智能
天国梦6 小时前
自习室智能化升级避坑指南:天学网AI智习室方案实测与选型建议
大数据·人工智能
阿里云云原生6 小时前
可用性从 99.9% 跃升至 99.995%:畅捷通如何用 AI 重塑运维底座?
运维·网络·人工智能