この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
開発環境として Docker を使っていると、開発者の環境固有の問題に対応するためにその環境固有の設定を追加したい場合がある。そのような場合のTips
背景
- ローカル開発環境を Docker で構築して開発者間の環境の差異をできるだけ少なくしている
- ただし、ホスト環境が Windows, Mac, Linux と様々で、個人毎に設定を微妙に変えたいケースがある
追記(2019/6/27)
どうも docker-compose はデフォルトで docker-compose.override.yml
を読み込むようなので、以下のように環境変数の設定は不要だった。
- チームの docker-compose.yml をローカルでだけ上書きしたい – Qiita
- Share Compose configurations between files and projects | Docker Documentation
対応方法
- 環境変数
COMPOSE_FILE
を使用するexport COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml のように設定すると、docker-compose.yml
,docker-compose.override.yml
両方の設定がマージされるdocker-compose.override.yml
は.gitignore
でリポジトリ管理の対象外としておくことで、個人の設定をここに書くことができる。- 参考: Compose CLI environment variables | Docker Documentation
- いちいち
export ...
を打つのが面倒な場合、 direnv を導入すると良い- macOS で Homebrew 導入済みなら
brew install direnv
でインストールできる - 詳細は以下を参照
- macOS で Homebrew 導入済みなら