最近Openclaw比较火,花费两天时间研究了一下如何部署安装,最终实现了Windows平台下Docker部署,不仅可以通过docker文件机制控制openclaw的权限边界,而且可以方便移植到任意环境。

  1. 部署前提

需要计算机安装Wsl2和Docker Desktop,版本我用的4.40.0 (187762)

  1. 下载官方openclaw项目包,如果是国内用户的话,建议使用镜像下载。

git clone https://gitcode.com/GitHub_Trending/cl/openclaw.git

3. 生成docker镜像文件,进入项目目录,执行“docker build -t openclaw:local -f Dockerfile . ”命令,就可以生成一个名为openclaw:local的docker镜像。

其实,项目目录下有一个docker-setup.sh脚本文件,执行之后就可以生成一个openclaw:local的Docker镜像文件和.env配置文件,并启动容器。执行方法是,打开powershell, cd进入项目目录,wsl进入模拟linux环境,然后输入./docker-setup.sh,就可以执行脚本文件。注意这个脚本是用shell语言编写,必须在模拟linux环境才能执行,而且执行过程中有可能因为网络问题导致中断。

4.修改.env配置,打开项目目录下的.env文件,添加OPENCLAW_GATEWAY_TOKEN,OPENCLAW_CONFIG_DIR、OPENCLAW_WORKSPACE_DIR和OPENCLAW_IMAGE三个配置项。其中OPENCLAW_GATEWAY_TOKEN可以自己设定,OPENCLAW_CONFIG_DIR和OPENCLAW_WORKSPACE_DIR两项配置映射了容器的配置目录和工作目录,也就是说,这两个目录是容器可以访问的目录,后续需要openclaw处理的文件,都放到OPENCLAW_WORKSPACE_DIR配置的目录下即可。OPENCLAW_IMAGE配置为openclaw:local,也就是刚才生成的镜像名。如图所示:

5. 启动容器,在项目目录下执行docker compose run --rm openclaw-cli onboard或者docker compose up –d openclaw-gateway,就可以启动容器。执行前者,需要启动时预先配置模型的技能,钩子等信息,执行后者,直接运行容器。

6. 修改openclaw.json,容器启动后,发现容器无法正常运行,需要修改一下配置。打开OPENCLAW_CONFIG_DIR设定目录下的openclaw.json文件,找到gateway配置,添加“controlUi.dangerouslyAllowHostHeaderOriginFallback”的设置,如图所示。

7. 修改完后,容器正常启动,打开浏览器登录http://localhost:18789/,发现报错“unauthorized: gateway token mismatch (open the dashboard URL and paste the token in Control UI settings)”,打开“概览”界面,在网格令牌中填入.env文件中OPENCLAW_GATEWAY_TOKEN配置项的值,点击“连接”,继续报错“pairing required”。此时弹出说明,需要网关主机的配对批准。

需要进入到容器中处理,执行命令“docker exec -it openclaw-main-openclaw-gateway-1 /bin/bash”进入容器,然后依次执行“openclaw devices list”和“openclaw devices approve <request ID>”,即可消除错误,其中<request ID>就是openclaw devices list命令查询到的request ID。执行到此处,错误都消除了,可以正常使用了。

8.设置配置项,在容器里执行“openclaw onboard”命令,可以重新配置,主要是要设置模型参数。所有设置完成后,就可以使用了。

9.注意tips。

(1)亲测ollama配置下,会报“LLM request timed out.”的错误,据说openclaw的agent至少要达到10tokens/s速度才行。

(2)容器里经常报一个“tools.profile (coding) allowlist contains unknown entries (apply_patch, image). These entries won't match any tool unless the plugin is enabled.”的错误,把配置文件里tools的配置信息“profile: 'coding'”,删除就可以了。

10. 移植仿佛。移植时,需要把项目目录的文件和openclaw:local镜像统一移植,然后按照4-9重新执行一遍就行。

导出镜像命令“docker save –o openclaw.tar openclaw:local”,导入镜像命令“docker load –i openclaw.tar”。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐