docker-compose で /etc/hosts をいじりたい

題通りの状況になりました。

dockerコンテナは基本的に起動時にIPを動的に割り当てているので、起動時にhostsが書き換わるみたいですね。

コンテナ起動の時は多分 –add-host [] みたいな感じでオプションをつければいいはずなんですが、この記事はそれと同じことをdocker-composeでやるお話です。

extra-hosts というのを使います。 下の例のように使えます。 いろいろかいてあるままこぴって来たのでいらないものたくさんついていますが、一番下のオプションがそれです。

services:
    web:
        #image: nginx:latest
        build: "./../nginx_image"
        volumes:
            - /root/nginx_image/log:/var/log/nginx
            - /root/nginx_image/nginx.conf:/etc/nginx/nginx.conf
        links:
            - ruby
        ports:
            - 80:80
        container_name: scramble-nginx
        networks:
            vpc-scramble:
                ipv4_address: 192.168.0.2
        tty: true
        extra_hosts:
            - test1.com:111.111.111.111
            - test2.com:222.222.222.222

これでhostsに指定された2行が追加されます。

ちなみに僕の状況では追加ではなく、すでにあるものを修正したかったのでこれでは解決できず、結局ENTRYPOINTで力技で解決してしまいました。。。 誰か私の悩みを解決する方法をご存知の方いらっしゃいましたら教えてください。。。