CircleCI で複数の docker image を指定したときの構成

2019/01/14   #CircleCI 
このエントリーをはてなブックマークに追加

.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 としてどのような構成で実現される? - スタック・オーバーフロー