在Docker中运行OpenClaw

在Docker中运行OpenClaw
在Docker中运行OpenClaw

我不够勇敢直接在我的Mac上运行OpenClaw(也叫Clawdbot aka Moltbot),所以我决定尝试在Docker容器中运行它。

OpenClaw开箱即支持Docker,在他们的文档此页面中描述。这对我有效。

1、使用他们的Docker Compose配置

首先,克隆他们的GitHub仓库:

git clone https://github.com/openclaw/openclaw 

它包含一个在Docker中运行OpenClaw的脚本,称为docker-setup.sh,后者使用Docker Compose和他们的docker-compose.yml文件。

该脚本将直接在你的Mac上创建两个文件夹,这些文件夹将作为卷挂载在Docker容器中:

~/.openclaw是配置目录。这将最终包含OpenClaw记忆、配置、第三方API密钥等。

~/openclaw/workspace是工作区目录,充满了文件,这些文件在代理在容器内运行时直接可用。代理创建的文件也将保存在这里。

2、回答所有这些问题

在首次运行时,OpenClaw会问你很多问题。其中大多数都是相当明显的,但我仍然不得不重新开始几次才能把一切都做对。我发现一些棘手的:

入职模式:手动

你想设置什么?:本地网关(这台机器)

模型提供商。我决定使用带有ChatGPT OAuth的OpenAI Codex,这使我能够对ChatGPT进行身份验证以使用我$20/月OpenAI订阅覆盖的代币。我这样做是因为我听说OpenClaw可以在API计划上花费很多token,而使用ChatGPT给它可以花费多少钱设定了一个容易的上限。当你选择这个时,OpenClaw会给你一个在浏览器中打开的URL,该URL重定向回一个不运行的localhost服务并显示错误消息 — 然后你复制并粘贴该localhost URL回OpenClaw以完成身份验证。这是那个样子的

Tailscale:我第一次尝试配置它,结果是一台我无法使用的机器,所以第二次我说"不"。

一旦它启动并运行,你可以运行:

docker ps 

以查看容器。我的是运行图像openclaw:local并具有容器名称openclaw-openclaw-gateway-1

3、运行管理命令

Docker Compose提供的另一个容器称为openclaw-cli,可用于运行openclaw CLI命令来管理实例。

这适用于那,但你必须在与docker-compose.yml文件相同的文件夹中运行它。

docker compose run --rm openclaw-cli status 

4、设置Telegram机器人

OpenClaw可以通过多种不同的消息平台进行通信,包括WhatsApp和iMessage以及Telegram和Slack和Discord。这意味着你可以直接从手机控制容器中的实例。

我认为Telegram看起来最容易设置。

你需要一个Telegram帐户。然后通过与Telegram上的@BotFather聊天来创建一个新机器人。

开始与@BotFather的聊天

发送命令/newbot

按照说明命名你的机器人并获取令牌

该令牌随后可以作为初始设置向导的一部分提供给OpenClaw。

还有一个剩余步骤:你必须将你的Telegram帐户与你的新机器人和OpenClaw实例配对

OpenClaw将通过Telegram向你发送一条带有配对代码的消息,然后运行此:

docker compose run --rm openclaw-cli pairing approve telegram <CODE> 

此时你应该能够直接从手机上的Telegram向你的机器人发送消息!

5、访问Web UI

OpenClaw在端口18789上运行默认Web UI。如果你直接在http://localhost:18789访问它,你会看到一个错误告诉你需要先进行身份验证。

要做到这一点,你需要一个特殊的?token=... URL参数。这可能在设置期间显示,但如果你丢失了它,你可以像这样获得一个新的:

docker compose run --rm openclaw-cli dashboard --no-open 

获取输出的URL以访问界面。

有时这还不够 — 你可能会看到此错误:

disconnected (1008): pairing required 

由于某种原因,openclaw-cli容器在这里对我不起作用,但这种运行openclaw命令的替代方法确实有效:

docker compose exec openclaw-gateway \ node dist/index.js devices list 

这显示了配对列表,希望包括一个尚未批准的请求,像这个:

Pending (1) ┌──────────────────────────────┬───────────────────────────────────┬──────────┬────────────┬────────┐ │ Request │ Device │ Role │ IP │ Age │ Flags │ ├──────────────────────────────────────┼───────────────────────────────────┼──────────┼────────────┼────────┼────────┤ │ 6f9db1bd-a1cc-4d3f-b643-2c195262464e │ 8b7bbf4f69633058dc3beee8a56adbccf │ operator │ 172.18.0.1 │ 2m ago │ │ │ │ aafc8be8058bea8a06be1cb7bfad9b3 │ │ │ │ │ └──────────────────────────────────────┴───────────────────────────────────┴──────────┴────────────┴────────┴────────┘ 

要批准它,运行此命令:

docker compose exec openclaw-gateway \ node dist/index.js devices approve \ 6f9db1bd-a1cc-4d3f-b643-2c195262464e 

仪表板UI看起来像这样,并且有大量不同的调试工具加上Web聊天界面:

[

OpenClaw Gateway Dashboard Web界面的截图。标题显示"OPENCLAW GATEWAY DASHBOARD"并带有绿色"Health OK"指示器。左侧导航栏包含导航部分:聊天(聊天突出显示)、控制(概览、通道、实例、会话、Cron作业)、代理(技能、节点)、设置(配置、调试、日志)和资源(文档)。主要内容区域显示"聊天"并带有副标题"用于快速干预的网关直接聊天会话。"和"telegram:6580064359"标识符。一条用户消息在下午4:08读取"显示你所有可用的配置工具的详细列表"。助手响应说:"这是我在此OpenClaw会话中可用的工具完整列表(按配置)。这些只是我可以通过编程方式调用的工具:"后跟分类工具:"文件和workspace"(read — 读取文件(文本或图像)。支持大文件的偏移量/限制;write — 创建/覆盖文件(创建父目录);edit — 通过精确字符串替换进行精确的就地编辑),"Shell /进程"(exec — 运行shell命令(可选PTY、后台、超时);process — 管理运行的exec会话(列表/轮询/日志/写入/终止等)),"Web"(web_search — 搜索Web(Brave Search API);web_fetch — 获取URL并提取可读内容(markdown/文本);browser — 控制浏览器(打开/导航/快照/屏幕截图/操作等)),"UI / 渲染"(canvas — 展示/评估/快照Canvas表面(用于node画布/UI渲染)),和"设备 / 节点"(cut off)。底部显示带有占位符"消息(↵发送,Shift+↵换行,粘贴图像)"和"新会话"和珊瑚"发送"按钮的消息输入

6、作为root运行命令

我发现自己想要安装一些额外的包,但OpenClaw机器人本身作为没有sudo访问的用户运行(可能是最好的!)

你可以像这样以root身份访问Bash shell:

docker compose exec -u root openclaw-gateway bash 

我在那里安装了额外的包,像这样:

apt-get update && apt-get install -y ripgrep 

原文链接:在Docker中运行OpenClaw - 汇智网

Read more

Flutter 三方库 async_extension 的鸿蒙化适配指南 - 实现具备高级异步编排算法与流操作扩展的并发工具集、支持端侧复杂业务流的函数式处理实战

Flutter 三方库 async_extension 的鸿蒙化适配指南 - 实现具备高级异步编排算法与流操作扩展的并发工具集、支持端侧复杂业务流的函数式处理实战

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 async_extension 的鸿蒙化适配指南 - 实现具备高级异步编排算法与流操作扩展的并发工具集、支持端侧复杂业务流的函数式处理实战 前言 在进行 Flutter for OpenHarmony 的大规模异步业务系统(如实时行情刷新、多源数据聚合)开发时,如何更优雅地处理 Future 的超时竞争、Stream 的防抖(Debounce)或复杂的并发队列控制?虽然 Dart async 包提供了基础功能,但 async_extension 进一步扩展了异步编程的边界,提供了更符合函数式范式的工具。本文将探讨如何在鸿蒙端构建极致、高效的异步处理链路。 一、原直观解析 / 概念介绍 1.1 基础原理 该库通过对 Dart 核心异步类的非侵入式扩展(Extensions)

By Ne0inhk
计算机毕业设计必看必学~基于springboot大学生实习管理系统的设计与实现,原创定制程序、单片机、java、PHP、Python、小程序、文案全套、毕设成品等!

计算机毕业设计必看必学~基于springboot大学生实习管理系统的设计与实现,原创定制程序、单片机、java、PHP、Python、小程序、文案全套、毕设成品等!

springboot大学生实习管理系统 摘要 随着大学生实习的日益重要和广泛普及,建立一套高效、便捷的大学生实习管理系统对于高校和学生都具有重要意义。本文基于Spring Boot框架,设计并开发了一套大学生实习管理系统,旨在提供一个全面、可靠的平台,方便学生、教师和企业进行实习管理。 该系统采用了前后端分离的架构,前端使用Vue.js技术栈开发,后端使用Spring Boot框架搭建。系统实现了学生信息管理、实习岗位发布与申请、实习评分等功能。学生可以通过系统查看自己的实习信息、提交实习报告和评价,并与企业和指导老师进行沟通交流。教师可以管理学生的实习任务、审核实习报告以及评定实习成绩。企业可以发布实习岗位、筛选学生申请,并进行实习任务的管理和评价。 在系统实现过程中,充分考虑了用户体验和安全性。通过合理的权限控制机制,确保不同角色用户只能访问其具备权限的功能。同时,系统也提供了数据备份和恢复功能,保障数据的安全性和可靠性。 实际测试结果表明,该系统具有良好的稳定性和可用性,满足了大学生实习管理的需求。用户对系统的易用性和功能完善性给予了积极评价。 综上所述,本文设计和开

By Ne0inhk
vue3+python基于python的球类体育赛事发布和在线购票选座系统60576715

vue3+python基于python的球类体育赛事发布和在线购票选座系统60576715

目录 * 技术栈与项目概述 * 系统架构设计 * 数据库模型设计 * 前端关键技术实现 * 后端核心逻辑 * 安全与性能优化 * 测试与部署 * 扩展方向 * 开发技术路线 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 技术栈与项目概述 * 前端框架: Vue 3 (Composition API + TypeScript) * 后端语言: Python (FastAPI/Django 选型分析) * 数据库: PostgreSQL/MySQL 与 Redis 缓存 * 核心功能: 赛事发布、在线选座购票、支付集成、实时数据更新 系统架构设计 * 前后端分离: RESTful API 接口设计规范 * 微服务模块划分: 用户服务、赛事管理、订单支付、座位库存 * WebSocket 应用: 实时推送座位锁定状态与赛事更新

By Ne0inhk