技術文章としてメモを残しておく
docker-composeでMYSQLを起動して別のdockerアプリで連携する際
ほとんどのサイトではlinkを使って連携してるけど、linkはいつなくなってもおかしくないオプションなので使わないで連携する方法を確認しておいた
docker-composeは何も指定しないとdefaultのネットワークを作ってそこに内部的なアドレスを自動採番されて配置される
つまりnetworksオプションをルートに設定して
各dockerに固定アドレスを設定すれば、DBのアドレスが固定できるので、URLが固定できる
.envに固定するIP書いとけば、別のdockerでも参照できるのでDB接続は問題なくいける
version: '3.5'
services:
db:
image: mysql:5.7
hostname:
mysql
env_file: .env
ports:
- 3306:3306
networks:
mynet:
ipv4_address: 172.25.0.101
web:
(イメージとかポートとかの設定を書く)
depends_on:
- db
env_file: .env
networks:
mynet:
ipv4_address: 172.25.0.11
networks:
mynet:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24