Docker
Docker ビルドステップでは、ビルド内で build、push、tag Docker(英語) コマンドを起動できます。
新しくビルドされたイメージをレジストリにプッシュする必要がある場合は、次のように Docker レジストリ接続ビルド機能を構成することで、Docker または Podman レジストリに承認することができます。
プロジェクト設定を開き、接続設定タブに移動します。
プロジェクトに新しい Docker または Podman 接続を追加します。
ビルド構成設定で、前の手順で作成した接続を使用して Docker レジストリ接続ビルド機能を構成します。
Dockerfile(英語) が VCS リポジトリに存在し、このリポジトリに基づいて TeamCity プロジェクトを作成する場合、TeamCity はそれを自動検出し、このランナーを使用してビルドステップを作成することを提案します。
共通設定
ビルドステップでは、選択した Docker コマンドに応じて次の設定が提供されます。
コマンド | パラメーター | 説明 |
|---|---|---|
| Dockerfile ソース | 選択したソースに応じて、以下の設定は異なります。使用可能なオプションは、ファイル、URL、ファイルコンテンツです。 |
ファイルへのパス | ファイルソースタイプで使用可能: Dockerfile(英語) へのパスを指定します。パスは、ビルドチェックアウトディレクトリからの相対パスである必要があります。 | |
コンテキストフォルダー | ファイルソースタイプで使用可能: | |
ファイルへの URL | URL ソースタイプで使用可能: URL は、Git リポジトリ、事前にパッケージ化された tarball コンテキスト、プレーンテキストファイルの 3 種類のリソースのいずれかを参照できます。詳細については、Docker のドキュメント(英語)を参照してください。 | |
ファイルコンテンツ | ファイルコンテンツソースタイプで使用可能: Dockerfile(英語) の内容をフィールドに入力できます。 | |
イメージプラットフォーム | \<Any\> (デフォルト)、Linux、Windows を選択します。 | |
イメージ名: タグ | イメージ名の改改行コードリストを提供します: タグ(英語)。 | |
| | |
| プッシュ後にエージェントからイメージを削除する | 選択した場合、TeamCity は、ステップの最後に |
イメージ名: タグ | イメージ名の改改行コードリストを提供します: タグ(英語)。 | |
その他 | コマンド名 | |
作業ディレクトリ | チェックアウトディレクトリと異なる場合は、ビルド作業ディレクトリを指定します。 | |
コマンドの追加引数 | |
sudo による Docker の実行
sudo を介して、TeamCity エージェントで Docker コマンドの開始を強制できます。teamcity.docker.use.sudo=true 設定をビルドエージェント構成ファイルに、またはエージェントのシステムプロパティとして追加します。エージェントの開始時に、TeamCity エージェントログは、sudo 接頭辞が Docker コマンドの実行に使用されていることを通知します。
sudo コマンドの sudoers ファイルを構成するには、次のように visudo (英語) を使用します。
docker login の問題(英語)を防ぐために、sudoers ファイルから Defaults requiretty 行を削除(またはコメントアウト)することをお勧めします。
マルチアーキテクチャイメージの構築
その他 ... コマンドオプションを使用すると、任意のカスタム docker ... コマンドを実行できます。例: buildx(英語) コマンドを呼び出してマルチアーキテクチャイメージをビルドできます。
ビルド構成に新しい Docker ランナーを追加します。
Docker コマンドオプションを「その他 ...」に切り替えます。
コマンド名フィールドに「buildx」と入力し、コマンドの追加引数に「create --use」と入力します。TeamCity はこれらのフィールドを 1 つの
docker buildx create --useコマンドに結合します。実行する新しいコマンドごとに手順 1 ~ 3 を繰り返します。例: 追加のノード (
docker buildx create --append --name mybuild <context_name>) を追加したり、docker buildx build <path> --platform linux/amd64,linux/arm64を呼び出してイメージの構築を開始したりすることができます。
カスタム TeamCity イメージの構築
TeamCity サーバーおよびエージェントイメージの使用と構築の詳細については、次の記事を参照してください。
関連ページ:
ビルドステップの設定
ビルドステップは、CI/CD ワークフローの最小単位です。ビルドステップは、全体として実行される一連のアクションを定義します。ビルドステップは、ビルド構成とパイプラインジョブに属します。構成とパイプラインのビルドステップ:TeamCity は、.NET、Maven、NAnt、Xcode などの特定のビルドツール用に設計された幅広いビルドステップを提供します。現在、ビルド構成ではすべてのステップが利用可能です。バージョン 2025.07 で導入された
コンテナーラッパー
コンテナーラッパー拡張機能を使用すると、指定された Docker/Podman イメージ内でビルドステップを実行できます。ビルドを実行するエージェントにインストールされているコンテナーマネージャーに応じて、イメージはまたはコマンドによってプルされます。TeamCity は、コンテナーを匿名でプルできます (イメージが公開されている場合)。または、レジストリにログインした後でプルできます (プライベートレジストリの場合、または匿名ダウンロードに対する DockerHub のペナルティを回避する場合...
プロジェクト管理者ガイド
このセクションでは、プロジェクト管理に焦点を当てます。TeamCity プロジェクトとビルド構成の作成、ビルドステップの設定、依存関係チェーンの構成などについて説明します。基本的な TeamCity ワークフロー:次のダイアグラムは、基本的な TeamCity ワークフローを示しています。TeamCity サーバーはリポジトリの変更を検出しました。サーバーはこの変更をデータベースに書き込みます。ビルド構成に添付されたトリガーは、データベース内の関連する変更を検出し、ビルドを開始します。トリガー...
Docker レジストリ接続
Docker レジストリ接続ビルド機能により、TeamCity はビルドの開始前に DockerHub またはその他のコンテナーレジストリに自動的にサインインできます。この機能を次の場所に追加します。TeamCity による Docker/Podman 操作 (たとえば、および) の監視と検出を許可します。ビルド前に認証されたレジストリに自動的にログインし、ビルド後にログアウトします。ローカル (Docker と Podman の両方) イメージをクリーンアップし、レジストリにプッシュ (Doc...