コンテナイメージ公開CIを追加
Validate and publish container image / build (pull_request) Failing after 1m31s

This commit is contained in:
2026-07-18 08:42:04 +09:00
parent 8fe18971f0
commit c14716c46b
9 changed files with 202 additions and 28 deletions
+43 -4
View File
@@ -80,7 +80,46 @@ cp .env.example .env
# .envファイルを編集して実際の値を設定
```
## 🐳 Docker Composeでの実行
## 🚢 Agents `container_tools` へのデプロイ
`container_tools` はイメージをビルドせず、レジストリからpullして起動します。このリポジトリでは、`main` へのpush時にGitea Actionsが次のイメージをHarborへ公開します。
```text
harbor.mukan.0am.jp/services/email-to-discord:<commit-sha>
harbor.mukan.0am.jp/services/email-to-discord:latest
```
### 1. Gitea Actions Secretsの設定
リポジトリのActions Secretsへ次の2項目を登録します。実際の値をリポジトリやComposeへコミットしないでください。
- `HARBOR_USERNAME`
- `HARBOR_PASSWORD`
Pull Requestではテストステージと実行イメージのビルドだけを行い、`main` へマージされたときだけHarborへpushします。
### 2. デプロイ用Composeの準備
通常の [`docker-compose.yml`](docker-compose.yml) は `container_tools` 用テンプレートです。次の値を実際のデプロイ情報へ置き換えます。
- イメージタグの `latest`(可能ならGitea Actionsが公開したコミットSHAへ変更)
- `REPLACE_WITH_EMAIL_USER`
- `REPLACE_WITH_EMAIL_PASSWORD`
- `REPLACE_WITH_WEBHOOK_URL`
- `REPLACE_WITH_WEBHOOK_TOKEN`
- `REPLACE_WITH_DISCORD_CHANNEL_ID`
Discordへの直接通知も併用する場合だけ、空の `DISCORD_WEBHOOK_URL` に実際のURLを設定します。`WEBHOOK_SECRET` は設定しません。
Agentsの実行時情報にある `WEBHOOK_URL``http://127.0.0.1:<port>/webhook` の場合、コンテナ内の `127.0.0.1` はサテライト自身を指すため、`http://host.docker.internal:<port>/webhook` に置き換えてください。ComposeにはLinuxからDockerホストへ到達するための `host-gateway` を設定済みです。
### 3. デプロイ
置換後のCompose全文を、安定した `project_name` とともに `container_tools` へ渡します。デプロイ用Composeには、`container_tools` が禁止する `build``container_name``env_file`、host bind mountを含めていません。
## 🐳 ローカルDocker Composeでの実行
ローカルでソースからビルドする場合は、デプロイ用とは別の `docker-compose.local.yml` を使用します。
### 1. `.env` の設定
@@ -101,13 +140,13 @@ DISCORD_CHANNEL_ID=123456789012345678
```bash
# コンテナをビルドして起動
docker-compose up -d
docker compose -f docker-compose.local.yml up --build -d
# ログの確認
docker-compose logs -f
docker compose -f docker-compose.local.yml logs -f
# コンテナの停止
docker-compose down
docker compose -f docker-compose.local.yml down
```
## 🚀 Linux用シェルスクリプトでの実行