動かざることバグの如し

近づきたいよ 君の理想に

Docker composeで他のコンテナをHTTPリクエストしたい

ググってもなかなか出てこなかったのでメモ

やりたいこと

なかなかうまく説明できないが、例えばnginxとphp-fpmのDocker-composeの構成があったとして、php-fpmのコンテナからcurl nginxでHTTPリクエストをするとなんらか取得できる。が、たいていURLはURLなので、local.turai.workのように形でHTTPリクエストを投げたい場合がある。が、/etc/hostsに書こうにもコンテナがたった時点で内部IPは決まってしまうので前もってかけない。

解決策

networks::aliasesを使う

以下でいけた

services:
  web:
    image: nginx:1-alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./docker/nginx/server.conf:/etc/nginx/conf.d/servers.conf
      - "./:/var/www/html"
    networks:
      default:
        aliases:
          - local.turai.work
  php-fpm:
    build: ./docker/php-fpm
    image: "hoge/php-fpm:latest"
    volumes:
      - "./:/var/www/html"