.circleci/config.yml
jobs:
hoge:
docker:
- image: imageA
- image: imageB
- image: ...
:
CircleCI の config で docker image が書けるが、 image を複数連ねて書くことができる。
その場合、どういう構成になるのか。
まず、一番上に書いた image がベースになる。
なので、 run
でコマンドを叩きたいなどの場合は、このベース image にコマンドがインストールされている必要がある。
2つ目以降のコンテナには、 localhost:${exposeされたポート番号}
でアクセスできる。
CircleCIではDockerのNetwork Namespaceという機能を使ってlocalhostを複数のコンテナで共有しています。これを使うと複数のコンテナで使うネットワークを分けることができます。もともとはLinux Kernelが提供している機能でnetnsと呼ばれ、Dockerはそれをラップしている形となります。
circleci で複数イメージを指定したとき、それは docker としてどのような構成で実現される? - スタック・オーバーフロー