Docker レジストリ接続
Docker レジストリ接続 ビルド機能を使用すると、TeamCity はビルド開始前に DockerHub またはその他のコンテナーレジストリに自動的にサインインできます。
この機能を次の場所に追加します。
TeamCity が Docker/Podman の操作 (たとえば、
docker pullとpodman 実行) を監視および検出できるようにします;ビルド前に認証されたレジストリに自動的にログインし、ビルド後にログアウトします。
ローカル (Docker と Podman の両方) イメージをクリーンアップし、レジストリにプッシュ (Docker のみ) イメージをクリーンアップします。
ビルド結果ページに コンテナー情報 タブを追加します。 このタブには、使用されているコンテナーマネージャーに関連する操作に関する情報が表示されます。

リポジトリへのログインとログアウト、およびイメージのクリーンアップには、 Docker レジストリへの接続が設定されている必要があります。

Docker イメージのクリーンアップ
プッシュされたイメージのクリーンアップ
イメージを公開するビルド構成がある場合は、ある時点でイメージを削除する必要があります。 対応するオプションを選択し、ビルド自体が クリーンアップされるときに、特定のビルドによって公開されたイメージを除去するよう TeamCity に指示できます。
動作は次のとおりです: イメージが公開されると、TeamCity はビルドによって公開されたイメージのレジストリに関する情報を保存します。 サーバークリーンアップが実行されてビルドが削除されると、構成済みのすべての接続でこのレジストリのアドレスが検索され、ビルドによって公開されたイメージが、見つかった接続で指定された資格情報を使用してクリーンアップされます。
Podman 経由でプッシュされたイメージのクリーンアップは、現在、イメージが Linux エージェントからプッシュされ、 --digestfile=<ファイル名> オプションが設定されている場合にのみ有効になります。 ファイル名 は チェックアウトディレクトリからの相対パスであり、最終的なダイジェストファイルの場所を指す必要があることに注意してください (このパスは、それ以降のナビゲーションコマンドによって変更しないでください)。
ビルドエージェント上のイメージのクリーンアップ
空きディスク容量ビルド機能の一部として、Docker Registry Connections は、このビルドエージェント上の TeamCity ビルドによって作成されたイメージをクリーンアップします。 ビルド機能は、docker images が以下に格納されていることを前提としています。
Linux 上の
/var/lib/dockerWindows 上の
%ProgramData%ディレクトリ他のシステムの
$HOMEディレクトリ
空きディスク容量機能はビルドのためにクリーンアップすべきディスクボリュームを分析するため、場所は重要です。 docker daemon がイメージ / コンテナーに非標準の場所を使用する場合、場所は teamcity.docker.data.パス 構成パラメーターを使用して指定できます (ビルドエージェント.プロパティ ファイル内が望ましい)。
Docker レジストリの自動ログイン/ログアウト
レジストリ接続を追加 ボタンを使用すると、ビルドの開始時に対応するレジストリで自動的に認証するために使用される レジストリ接続を選択できます。 ビルドが終了すると、TeamCity はそれらのレジストリからログアウトします。
Amazon ECR
Amazon Elastic Container Registry (ECR) への接続により、Docker/Podman イメージをプライベート AWS レジストリに保存できます。 このためには、ビルド構成に Docker レジストリ接続機能を追加するときに、このような接続を選択する必要があります。
接続設定:
設定 | 説明 |
|---|---|
AWS リージョン | ターゲットリソースが配置されている AWS リージョンを選択します。 |
クレデンシャルタイプ |
|
IAM のロール ARN (一時的な認証情報のみ) | 一時的な資格情報の生成に使用するロールを指定します。 AWS コンソールで事前(英語)にこのロールを作成し、必要なすべてのアクセス許可に割り当てる必要があります。 |
外部 ID (一時的な認証情報のみ) | 外部 ID(英語) を指定します。 一時的なクレデンシャルを使用する場合は、常に定義することを強くお勧めします。 これにより、TeamCity のみが指定された IAM ロールを使用できるようになります。 |
デフォルトの資格情報プロバイダーチェーン | このオプションを有効にすると、デフォルトのチェーン(英語)に従ってアクセスキーが自動的に検索されます。 |
アクセスキー ID | アクセスキー ID を指定します。 こちら(英語)で入手方法を参照してください。 |
秘密アクセスキー | シークレットアクセスキーを指定します。 こちら(英語)で入手方法を参照してください。 |
レジストリ ID | レジストリまたは AWS アカウントの ID を入力します。 |
Kotlin DSL
次の Kotlin DSL スニペットは、ビルド構成に Docker レジストリ接続ビルド機能を追加する方法を示しています。