コンテンツにスキップ

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