引言:AI 自动化开发三件套
如果你关注 AI 辅助编程,最近一定听说过这三个工具:
- OpenClaw:个人 AI 助手框架,擅长调度任务、管理记忆、调用工具,是整个流程的'指挥官'。
- OpenCode:AI 编程代理,能够深入理解代码库、自动修改代码、运行测试,是真正的'一线工程师'。
- OpenSpec:规范驱动框架,将模糊的需求转化为结构化的任务清单(
tasks.md),是项目的'施工蓝图'。
三者结合,可以构建一个从需求分析到代码落地的全自动化开发流水线。你只需要提出想法,AI 就能自主完成代码编写、调试和提交。
然而,很多开发者(包括我)还在使用 macOS 11 Big Sur,在安装 OpenCode 时遇到了经典的 dyld: Symbol not found: _ubrk_clone 错误——因为官方提供的预编译二进制仅支持 macOS 13+。难道老系统用户就无法享受 AI 自动化的红利了吗?
当然不是!本文将介绍如何通过 Docker 容器化 运行 OpenCode 服务,完美绕过系统兼容性问题,在 Big Sur 上实现 OpenClaw + OpenCode + OpenSpec 的全流程自动化。
解决方案概览:Docker 桥接兼容性鸿沟
核心思路:在 Docker 容器中运行 Linux 版本的 OpenCode,并通过 HTTP API 与宿主机上的 OpenClaw 通信。容器内的 OpenCode 不依赖 macOS 的系统库,因此彻底避免了 _ubrk_clone 等符号缺失问题。
整体架构如下:
- 宿主机:运行 OpenClaw 和 OpenSpec,负责任务调度和规范管理。
- Docker 容器:运行 OpenCode 服务,监听 36000 端口,通过卷挂载共享宿主机代码目录。
- 通信方式:OpenClaw 将 OpenCode 配置为模型提供商,通过
http://localhost:36000调用其 API。
准备工作
- 安装 Docker Desktop for Mac
访问 Docker 官网 下载适用于 macOS 的安装包。Docker Desktop 仍然支持 macOS 11,安装后启动即可。 - 确保 OpenClaw 已安装
如果还未安装 OpenClaw,参考其官方文档完成安装(通常通过 curl 脚本或 Homebrew)。 - 确保 Node.js 已安装(用于 OpenSpec)
推荐使用 nvm 安装 Node.js 20+,因为 OpenSpec 需要此版本。
第一步:构建 OpenCode Docker 镜像
目前 OpenCode 官方并未提供现成的 Docker 镜像,但我们可以轻松自制一个。创建一个新的目录,比如 opencode-docker,在里面创建 Dockerfile:
# 使用官方 Node.js 22 镜像(基于 Debian)
FROM node:22-bullseye
# 设置工作目录
WORKDIR /app
# 全局安装 opencode-ai
RUN npm install -g opencode-ai@latest
# 暴露 OpenCode 服务默认端口(假设服务模式使用 36000)
EXPOSE 36000
# 启动 OpenCode 服务(假设服务命令为 opencode server)
# 如果实际命令不同,请根据 opencode --help 调整
CMD ["opencode", , , , , ]


