Docker
Docker ビルドステップを使用すると、ビルド内で docker ビルド、 docker push、 docker tag やその他の Docker(英語) コマンドを起動できます。
前提条件
新しく作成したイメージを Docker レジストリにプッシュするには、まず認証を行う必要があります。
プロジェクト設定を開き、 接続設定タブに移動します。
プロジェクトに新しい Docker レジストリ接続を追加します。
ビルド構成設定で、前の手順で作成した接続を使用して Docker レジストリ接続 ビルド機能を構成します。
共通設定
ビルドステップでは、選択した Docker コマンドに応じて次の設定が提供されます。
コマンド | パラメーター | 説明 |
|---|---|---|
| Dockerfile ソース | 選択したソースに応じて、以下の設定は異なります。 使用可能なオプションは、 ファイル、 URL、 ファイルコンテンツです。 |
ファイルへのパス | ファイルソースタイプで使用可能: Dockerfile(英語) へのパスを指定します。 パスは、ビルドチェックアウトディレクトリからの相対パスである必要があります。 | |
コンテキストフォルダー | ファイルソースタイプで使用可能:
| |
ファイルへの URL | URL ソースタイプで使用可能: URL は、Git リポジトリ、事前にパッケージ化された tarball コンテキスト、プレーンテキストファイルの 3 種類のリソースのいずれかを参照できます。 詳細については、 Docker のドキュメント(英語)を参照してください。 | |
ファイルコンテンツ | ファイルコンテンツソースタイプで使用可能: Dockerfile(英語) の内容をフィールドに入力できます。 | |
イメージプラットフォーム | \<任意\> (デフォルト)、Linux、Windows を選択します。 | |
イメージ名: タグ | イメージ名の改改行コードリストを提供します: タグ(英語)。 | |
|
| |
| プッシュ後にエージェントからイメージを削除する | 選択すると、TeamCity はステップの最後に |
イメージ名: タグ | イメージ名の改改行コードリストを提供します: タグ(英語)。 | |
その他 | コマンド名 |
|
作業ディレクトリ | チェックアウトディレクトリと異なる場合は、 ビルド作業ディレクトリを指定します。 | |
コマンドの追加引数 |
|
sudo 経由で Docker を実行
TeamCity エージェント上で Docker コマンドを sudo 経由で起動するよう強制できます。 teamcity.docker.use.sudo=true 設定を ビルドエージェント構成ファイルに、またはエージェントのシステムプロパティとして追加します。 エージェントの起動時に、TeamCity エージェントログで、 sudo プレフィックスが Docker コマンドの実行に使用されることが通知されます。
sudo コマンドの sudoers ファイルを構成するには、次のように visudo (英語) を使用します。
docker ログイン の問題(英語)を防ぐために、 sudoers ファイルから Defaults requiretty 行を削除(またはコメントアウト)することをお勧めします。
マルチアーキテクチャイメージのビルド
その他… コマンドオプションを使用すると、任意のカスタム docker … コマンドを実行できます。 例: buildx(英語) コマンドを呼び出してマルチアーキテクチャイメージをビルドできます。
ビルド構成に新しい Docker ランナーを追加します。
Docker コマンド オプションを「その他 ...」に切り替えます。
コマンド名 フィールドに「buildx」と入力し、 コマンドの追加引数 に「create --use」と入力します。 TeamCity はこれらのフィールドを単一の
docker buildx create --useコマンドに結合します。実行する新しいコマンドごとに手順 1 ~ 3 を繰り返します。 例: 追加のノード (
docker buildx create --append --name mybuild <コンテキスト名>) を追加したり、docker buildx build <パス> --platform linux/amd64,linux/arm64を呼び出してイメージの構築を開始したりすることができます。
カスタム TeamCity イメージのビルド
TeamCity サーバーおよびエージェントイメージの使用とビルドの詳細については、次の記事を参照してください: