TeamCity 2020.2 ヘルプ

Docker ラッパー

The Docker Wrapper extension allows running a build step inside the specified Docker image.

The extension is available for the following build runners:

Each of the supported runners has the dedicated Docker settings section.

Docker の設定

In the Docker Settings section of the build step settings, you can specify a Docker image which will be used to run the build step. Once the image is specified, the following options become available.

設定

説明

Docker コンテナー内で実行ステップ

Specify a Docker image name as stated in Docker Hub(英語) . TeamCity will start a container from the specified image and will try to run this build step within this container.

例: ruby:2.4 は、Ruby コンテナー、バージョン 2.4 内でステップを実行します。

Docker イメージプラットフォーム

<Any>(デフォルト)、Linux、または Windows を選択します。

明示的にイメージをプルする

有効にすると、docker run コマンドが起動される前に、docker pull <imageName> を介して Hub リポジトリからイメージがプルされます。

追加の docker 実行引数

Allows specifying additional options for the docker run command. The default argument is --rm , but you can provide more, for instance, add an additional volume mapping.

使い方

Technically, the command of the build runner is wrapped in a shell script, and this script is executed inside a Docker container with the docker run command. All the details about the started process, text of the script, and so on, are written into the build log (the 詳細モード enables viewing them).

The build checkout directory and most build agent directories are mapped inside the Docker process.

Docker ラッパーを使用したビルド手順の最後に、ビルドエージェントが chown コマンドを実行して、buildAgent ユーザーのアクセスをチェックアウトディレクトリに復元します。これにより、Docker コンテナーからのファイルが root 所有権で作成され、後でビルドエージェントによって削除できない場合に起こり得る問題が軽減されます。

プロセス環境に前の Docker Compose ビルドステップで設定された TEAMCITY_DOCKER_NETWORK 環境変数が含まれている場合、このネットワークは --network スイッチを指定して開始済みの docker run コマンドに渡されます。

環境変数の取り扱い

TeamCity passes environment variables from the build configuration into the Docker process, but it does not pass environment variables from the build agent, as they may not be relevant to the Docker container environment. The list of the passed environment variables can be seen in the 詳細モード in the build log.