🚀

Docker リバースプロキシでhosts追加をやめる

2024/06/30に公開

複数プロジェクトをdocker composeで動かす場合、それぞれにバーチャルホストを割り当てて、リバースプロキシを置く、ということがあると思います。
docker-compose.ymlは大体こんな感じ。

version: '3'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: always

  dns:
    image: andyshinn/dnsmasq
    ports:
      - "53:53/udp"
      - "53:53/tcp"
    volumes:
      - ./config/dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf
    restart: always

networks:
  default:
    external: true
    name: sample_network

ですが、現状MacOS上だと、都度バーチャルホスト名をhostsファイルに追記しなければ、正常にアクセスができないようです。

127.0.0.1 myproject.test

担当が1プロジェクトなら良いですが、案件が増えたり、ジョインするメンバーが増えたりするたびにその作業が発生するのはかなり手間です。

ローカル上で、下記の設定を行えば、hostsファイルへの追記は不要になります。
※ test の部分は使っているドメインに合わせて適宜変更してください。
example.test → test
example.local → local

sudo mkdir -v /etc/resolver
sudo bash -c 'echo "nameserver ::1" >> /etc/resolver/test'
sudo bash -c 'echo "nameserver 127.0.0.1" >> /etc/resolver/test'

Discussion