Docker への接続を設定する
事前構成された Docker 接続により、次のことが可能になります。
ビルドを実行する前に認証された Docker または Podman レジストリにサインインし、ビルド後にサインアウトします。
ビルド後に公開されたイメージをクリーンアップします (現在、Podman では使用できません)。
プロジェクト設定 | 接続ページで、Docker レジストリ接続を構成できます。TeamCity は、docker.io(英語) (デフォルト) またはプライベート Docker レジストリへの接続をサポートします。プロジェクトには複数の接続を追加できます。接続は、現在のプロジェクトのすべてのサブプロジェクトとビルド構成で使用できます。
レジストリアドレスの形式
デフォルトでは、 https://docker.io (英語) が使用されます。ビルドを実行するビルドエージェントが Docker ではなく Podman を使用する場合、レジストリドメインを registries.conf ファイルに追加する必要があります。詳細については、次の記事を参照してください: Linux コンテナーレジストリを管理する方法(英語)。
レジストリに接続するには、[http(s)://]hostname:port の形式を使用します。
プロトコルが指定されていない場合は、デフォルトで https を介した接続が使用されます。
プライベートクラウドレジストリへの接続
TeamCity は、Docker および従来の LXC イメージを格納する Azure コンテナーレジストリをサポートします。サービス主体 (プリンシパル ID とパスワードが接続資格情報として使用されます) または管理者アカウントを使用して認証できます。
Amazon Elastic Container Registry(AWS ECR)がサポートされています。接続を設定するときに AWS リージョンと AWS セキュリティ認証情報を指定します。
安全でないレジストリへの接続
安全でないレジストリに接続するには
Docker デーモン設定ファイル(英語)を作成または編集して、
insecure-registries配列値を含めます。例:{ "insecure-registries" : ["http://my-registry:5000"] }これだけで、HTTP 経由でプライベートレジストリに接続できるようになります。
自己署名証明書を使用して HTTPS 経由で安全でないレジストリに接続するには、上記の手順に加えて、ここで説明されているように、自己署名証明書を TeamCity サーバーの JVM にインポートします。自己署名証明書を使用する(英語)の Docker ドキュメントを参照できます。
1 台のマシンで Docker を使用して複数のエージェントを実行する
TeamCity は、複数のエージェントが同一マシン上で並列ビルドを実行し、ビルド中に Docker レジストリに接続するケースをサポートします。この設定では、異なる Docker 環境を使用する必要があります。つまり、あるビルドの最後に実行される docker logout コマンドは、別のエージェントの並列ビルドに影響を与えないようにする必要があります。
設定するには、各エージェントの .docker ディレクトリの場所を指定する必要があります。そのためには、ビルド設定パラメーターとして、または各エージェントの buildAgent.properties ファイルで env.DOCKER_CONFIG=%teamcity.agent.home.dir%/system/.docker 環境変数を定義してください。
関連ページ:
TeamCity とコンテナーマネージャーの統合
TeamCity は、コンテナーマネージャー (Docker、Podman) と複数のレベルで統合されます。Docker ビルドランナーはビルド中に Docker コマンドを起動し、Docker イメージを作成します。Docker Compose ビルドランナーは、ビルド中に Docker Compose ツールを使用してサービスを開始します。コンテナーラッパー拡張機能は、コンテナー内でビルドステップを実行します。Docker と Podman をサポートします。複数のランナーで使用できます。Dock...
プロジェクト管理者ガイド
このセクションでは、プロジェクト管理に焦点を当てます。TeamCity プロジェクトとビルド構成の作成、ビルドステップの設定、依存関係チェーンの構成などについて説明します。基本的な TeamCity ワークフロー:次のダイアグラムは、基本的な TeamCity ワークフローを示しています。TeamCity サーバーはリポジトリの変更を検出しました。サーバーはこの変更をデータベースに書き込みます。ビルド構成に添付されたトリガーは、データベース内の関連する変更を検出し、ビルドを開始します。トリガー...
ビルドパラメーターの設定
パラメーターは、TeamCity 設定およびビルドスクリプトの構文を介して参照するペアです。パラメーター部分は、生の値 () にすることも、別のパラメーターへの参照 () を含めることもできます。パラメーター型:TeamCity は次の 3 種類のパラメーターをサポートします。構成パラメーター — ビルド構成内で設定を共有することを主な目的とするパラメーター。これらのパラメーターを使用して、テンプレートから作成された構成やレシピを使用する構成をカスタマイズすることもできます。TeamCity は...
エージェントのインストールを構成する
ビルドエージェントは、ファイルで調整することで構成できます。一般的なエージェント設定:この Java プロパティ構成ファイルには、エージェントプロパティとしてサーバーに公開され、エージェント要件式に参加できるプロパティを保存できます。ファイルで定義されているすべてのシステムプロパティと環境プロパティは、エージェントで実行されるすべてのビルドに渡されます。構文リファレンス: 構文を使用します。コメントには、行の最初の位置にを使用します。パス区切り文字として、の代わりにを使用します。を含める必要がある...
リフレッシュ可能なアクセストークンの管理
TeamCity には、機能上 VCS ホスティングプロバイダーへのアクセスを必要とするエンティティが複数あります:VCS ルート、コミットステータスパブリッシャー、プルリクエスト機能など。これらのエンティティは通常、複数の VCS 認証オプションを提供します。通常のユーザー名 / ログイン資格情報 — この認証方法は最も脆弱であるため、主要な VCS ホスティングプロバイダーによって徐々に廃止されています。個人アクセストークン (PAT) — VCS プロバイダー側で発行され、TeamCity...
バージョン管理でのプロジェクト設定の保存
TeamCity では、プロジェクト設定をバージョン管理リポジトリ(VCS)と同期できます。サポートされている VCS は、Git、Mercurial、Perforce、Subversion、Azure DevOps Server(旧 TFS)です。プロジェクト設定を XML 形式または Kotlin 言語で保存し、Kotlin ベースの DSL を使用してプログラムで設定を定義できます。重要なポイント:この機能は何をしますか ? 個々のプロジェクトの設定を XML または Kotlin 形式でリモ...