ローカル環境用の設定をdocker-compose.override.ymlに書く

公開日時

以前、docker-composeでmysqlの検証環境を作った

この時はdocker-compose.yml内にポート設定を直接書いていたが、

例えば複数人で開発をする際に各自で異なるポート番号を利用したい場合、docker-compose.override.ymlが使える。

override.ymlに記述した設定はdocker-compose up時に自動で読み込まれ、該当の設定が上書きされる。

# docker-compose.yml
version: "3"
services:
  datastore:
    image: busybox
    volumes:
      - db_data:/var/lib/mysql
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: pass
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

例: コンテナの3306ポートをローカルの3307ポートに割り当てたい場合

# docker-compose.override.yml
version: "3"
services:
  db:
    ports:
      - 3307:3306

docker-compose.override.yml自体は.gitignoreに追加してリポジトリ管理対象からは外し、docker-compose.override.yml.sampleをコミットしておく。

あとは各自の初期構築時にコピーして利用する。

cp docker-compose.override.yml.sample docker-compose.override.yml

参考


Related #docker

Dockerのデータ保存場所を変更する

/etc/docker/daemon.jsonに追記

docker-composeで最新のログを確認する場合

tailオプションも合わせて指定しよう

docker-compose build時に「no Space Left on Device」が発生

1年前にも同じエラーにハマってた

Windows10 HomeにDockerを入れる

Windows 10 May 2020 UpdateでWSL2が導入されたおかげ