Posted at

docker-compose間で通信できるようにする


手順1 事前にネットワークをコマンドで作成する

$ docker network create oreore

oreoreに関しては社内で統一してルール化するとよさげ


手順2 docker-compose.ymlにネットワークを設定する


project_a/docker-compose.yml

~省略~

services:
app:
ports:
- 3000:3000
~省略~
networks:
- oreore
- default
db:
ports:
- 5432:5432
~省略~
networks:
oreore:
external: true


project_b/docker-compose.yml

~省略~

services:
app:
ports:
- 1323:1323
~省略~
networks:
- oreore
- default
db:
ports:
- 5431:5431
~省略~
networks:
oreore:
external: true


解説

networks:

oreore:
external: true

の部分については、

- 最初にコマンドで作った oreoreネットワークを使うように設定

    networks:

- oreore
- default

の部分については、サービス(コンテナ)を



  • oreoreネットワークに追加


  • defaultネットワークにも追加

ということをやっています


注意



  • defaultを忘れると同一のdocker-compose.yml内での通信(app:3000-db:5432間)ができなくなる


  • サービス名:ポート番号が重複してると起動時にエラーになる