Docker 支持
Docker 为运行 OpenCode 提供了轻量级且隔离的环境,非常适合 DevOps 工作流、CI/CD 管道和一致的开发环境。
快速开始
在 Docker 中运行 OpenCode 最简单的方法是使用官方镜像:
docker run -it -v $(pwd):/app anomalyco/opencode:latest
此命令:
- 以交互模式运行 OpenCode (
-it) - 将当前目录 (
$(pwd)) 挂载到容器中的/app - 使用 OpenCode 镜像的最新版本
Docker Compose
对于更复杂的设置,您可以使用 Docker Compose。创建一个 docker-compose.yml 文件:
version: '3'
services:
opencode:
image: anomalyco/opencode:latest
volumes:
- .:/app
- opencode-config:/root/.config/opencode
working_dir: /app
tty: true
stdin_open: true
volumes:
opencode-config:
然后启动容器:
docker-compose up -d
DevOps 集成
CI/CD 管道
您可以在 CI/CD 管道中使用 OpenCode 来自动化代码审查和改进:
docker run --rm -v $(pwd):/app anomalyco/opencode:latest review --auto-apply
预提交钩子
将 OpenCode 集成到您的预提交工作流中:
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: opencode-review
name: OpenCode 审查
entry: docker run --rm -v $(pwd):/app anomalyco/opencode:latest review
language: system
types: [file]
files: \.(js|ts|py|go|java)$
配置
环境变量
您可以使用环境变量配置 OpenCode:
docker run -it \
-v $(pwd):/app \
-e OPENCODE_API_KEY=your-api-key \
-e OPENCODE_MODEL=gpt-4 \
anomalyco/opencode:latest
持久化配置
要在容器运行之间持久化配置,请挂载配置目录:
docker run -it \
-v $(pwd):/app \
-v ~/.config/opencode:/root/.config/opencode \
anomalyco/opencode:latest
高级用法
自定义 Dockerfile
为了获得更多控制,创建自定义 Dockerfile:
FROM anomalyco/opencode:latest
# 安装额外依赖
RUN apt-get update && apt-get install -y git
# 设置自定义配置
COPY opencode.config.json /root/.config/opencode/config.json
WORKDIR /app
构建并运行:
docker build -t my-opencode .
docker run -it -v $(pwd):/app my-opencode
多阶段构建
对于 CI/CD 环境,使用多阶段构建来保持镜像小巧:
# 构建阶段
FROM node:18 as build
WORKDIR /app
COPY . .
RUN npm install && npm run build
# 生产阶段
FROM anomalyco/opencode:latest
WORKDIR /app
COPY --from=build /app/dist /app/dist
# 运行 OpenCode 分析
CMD ["opencode", "review", "./dist"]
故障排除
权限问题
如果遇到挂载卷的权限问题:
docker run -it \
-v $(pwd):/app \
-u $(id -u):$(id -g) \
anomalyco/opencode:latest
网络访问
要允许 OpenCode 访问互联网进行 API 调用:
docker run -it \
--network=host \
-v $(pwd):/app \
anomalyco/opencode:latest
最佳实践
- 使用特定的镜像标签而不是
latest以确保可重现的构建 - 仅挂载必要的目录以提高性能
- 对于复杂的设置,使用 Docker Compose 管理多个服务
- 为生产环境配置资源限制
- 为容器编排实现健康检查
支持的标签
OpenCode Docker 镜像提供以下标签:
latest:最新稳定版本vX.Y.Z:特定版本(例如v1.0.0)dev:开发构建
示例:GitLab CI 集成
# .gitlab-ci.yml
stages:
- code-review
opencode-review:
stage: code-review
image: anomalyco/opencode:latest
script:
- opencode review --auto-apply
only:
- merge_requests
artifacts:
paths:
- opencode-report.json
示例:GitHub Actions 集成
# .github/workflows/opencode-review.yml
name: OpenCode 审查
on:
pull_request:
branches: [ main ]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 运行 OpenCode 审查
run: |
docker run --rm -v $(pwd):/app anomalyco/opencode:latest review --auto-apply
- name: 上传报告
uses: actions/upload-artifact@v3
with:
name: opencode-report
path: opencode-report.json