コンテナのローカル実行
概要
CopilotReportForge は、プラットフォームをローカルのコンテナで実行するための Docker Compose 設定を提供します。イメージソースに応じて 3 つの方法が利用可能です:
| 方法 | Compose ファイル | イメージソース |
|---|---|---|
| ローカルビルド | compose.yaml |
ソースからビルド |
| Docker Hub | compose.docker.yaml |
docker.io |
| GitHub Packages | compose.docker.yaml |
ghcr.io |
前提条件
- Docker と Docker Compose がインストール済み
- Copilot GitHub Token(
COPILOT_GITHUB_TOKEN) - (GitHub Packages)
read:packagesスコープ付き GitHub Personal Access Token - (Docker Hub)Docker Hub アカウント
注意: Docker イメージは Copilot CLI バージョン
0.0.420(compose ファイルと Dockerfile で固定)を使用します。更新するには、compose ファイルと Dockerfile のCOPILOT_CLI_VERSIONを変更してください。
セットアップ
1. 環境ファイルの作成
必要な環境変数を含む .env ファイルを src/python/ 配下に作成します。利用可能な変数の完全なリストについては .env.template を参照してください:
cp .env.template .env
# .env を設定に合わせて編集
最低限必要なのは:
COPILOT_GITHUB_TOKEN=your-copilot-token
2. ローカルビルドで実行
cd src/python
docker compose up --build
3. ビルド済みイメージで実行(Docker Hub)
cd src/python
docker compose -f compose.docker.yaml up
4. ビルド済みイメージで実行(GitHub Packages)
# GitHub Container Registry で認証
echo $GITHUB_PAT | docker login ghcr.io -u YOUR_USERNAME --password-stdin
# プルして実行
cd src/python
CONTAINER_REGISTRY=ghcr.io docker compose -f compose.docker.yaml up
サービス
| サービス | ポート | 説明 | プロファイル |
|---|---|---|---|
copilot |
3000 |
Copilot CLI サーバー | default |
api |
8000 |
チャットとレポート UI 付き Web アプリケーション | default |
monolith |
3000, 8000 |
supervisord で Copilot CLI と API の両方を実行する単一コンテナ | monolith |
サービス依存関係:
apiサービスはヘルスチェック条件(service_healthy)付きでcopilotに依存します。copilotサービスはポート 3000 で TCP 接続テストを実行して準備完了を確認してからapiが起動します。つまり、apiサービスは Copilot CLI が完全に準備できるまで待機します。モノリスアーキテクチャ:
monolithサービスは内部的に supervisord を使用して 2 つのプロセスを管理します: Copilot CLI サーバー(ポート 3000)と API サーバー(ポート 8000)。これは Azure Container Apps デプロイ で使用されるのと同じイメージです。
モノリスサービスの実行
monolith サービスは Copilot CLI と API サーバーの両方を supervisord を使用して単一コンテナにバンドルします。Docker Compose プロファイルで有効化されます:
# ローカルビルド
cd src/python
docker compose --profile monolith up monolith --build
# ビルド済みイメージ(Docker Hub)
cd src/python
docker compose -f compose.docker.yaml --profile monolith up monolith
これは Azure Container Apps デプロイ で使用されるのと同じイメージです。
一般的な操作
# すべてのサービスを停止
docker compose down
# コード変更後に再ビルド
docker compose up --build
# バックグラウンドで起動(デタッチモード)
docker compose up --build -d
# ログを表示
docker compose logs -f
# 特定のサービスを実行
docker compose up api
同等の Make ターゲットも利用可能です:
| コマンド | 機能 |
|---|---|
make compose-build |
Docker Compose サービスをビルド |
make compose-up |
すべてのサービスを起動(フォアグラウンド) |
make compose-up-d |
すべてのサービスを起動(バックグラウンド) |
make compose-down |
サービスを停止 |
make compose-logs |
ログを表示 |