/

docker-compose.ymlのbuildディレクティブ下にはextra_hostsを書ける

docs.docker.jp/compose/compose-file/build.html#extra-hostsのextra_hostsのdocument
docs.docker.jp/compose/compose-file/build.html#extra-hostsのextra_hostsのdocument v20.10 のスクリーンショット

$ docker compose build時にプライベートレポジトリを参照してnpm installしたかったので色々調べたら、docker-compose.ymlのextra_hostsに設定を追加しろだとか、docker run の時に--add-hostで指定しろだとか書いているサイトが見つかりそれを参考にして、$ docker compose buildをしたのだが何度やってもうまく行かない。

数時間後に下記の2つのドキュメントを見つけた。

Aのextra_hostsはbuild時に/etc/hostsにホスト名とIPを設定でき、Bのextra_hostsはdockerを起動した際の/etc/hostsにホスト名とIPを設定できるとのこと。

extra_hostsというディレクティブはdocker-compose.ymlのサービス内に2つ存在できるということなのだ。

なんてややこしい。

下記がdocker-compose.ymlの例

version: '3'
services:
  my-service:
    build:
      context: ./
      dockerfile: Dockerfile.nantoka
      # A build内のextra_hosts docker build時に/etc/hostsに書かれる
      extra_hosts:
        - "somehostforbuild:162.242.195.82"
        - "otherhostforbuild:50.31.209.229"
    # B extra_hosts docker run時に/etc/hostsに書かれる
    extra_hosts:
      - "somehost:162.242.195.82"
      - "otherhost:50.31.209.229"