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 Review
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
ネットワークアクセス
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 Review
on:
pull_request:
branches: [ main ]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run OpenCode Review
run: |
docker run --rm -v $(pwd):/app anomalyco/opencode:latest review --auto-apply
- name: Upload report
uses: actions/upload-artifact@v3
with:
name: opencode-report
path: opencode-report.json