Java

TeamCityでDockerのビルドエージェントを使う時のメモ

Docker Imageの選択

方法1 teamcity-agentイメージを使う

JetBrains公式で用意しているイメージとしてteamcity-agentteamcity-minimal-agentがある。

teamcity-minimal-agentはビルドを行える最低限のイメージで、Java(Corretto?)が入っているDebian。
.NETやJavaのプロジェクトでは前者(teamcity-agent)が推奨されている。teamcity-agentにはVCSクライアントも入っておりソースコードをエージェント側でチェックアウトできてビルドが少し早い。
またdocker-in-dockerもできるので方法2のコンテナイメージを選択するビルドも2階建てで実行できる。

TeamCityを同じマシンでDockerで動かしていればdocker-composeを使うか、networkを使って解決ればいいし、サーバ自体は素で起動している場合はlocalhostが解決出来るように –add-host=lcalhost:[ip a で出てくくるeth0ホストのinetの右隣に記載されているIPアドレス] などを付けるのが吉。

方法2 独自のイメージを使う

Mavenのビルドステップ設定の一番下で、ビルドに使うコンテナイメージを選択。Additional docker run arguments、で必要に応じてタイムゾーンとか解決したいホスト名とかを追加しておく。

リポジトリからイメージをpullする場合は事前にdocker loginしておく。