こんにちは。
本日はdocker-compose.ymlに定義した
環境変数を外部ファイルに定義する方法です。
概要
前回、docker-compose.ymlの作り方を記載しました。
ただ、環境変数が増えた場合に見にくくなってしまう...
なので、環境変数の設定を外部ファイルに定義してみる。
前回の記事は以下です。
nandakagoodvibes.hatenablog.com
envファイルの作成
実は、環境変数の設定を外部ファイルに設定するのは
すごく簡単です。
docker-composeの場合も、以下の記事と同様の方法です。
【Docker】Makefileを使ってコンテナを作成・操作する - なんだかGoodVibes
今回、db01とapp01用のファイルを用意します。
ファイルの配置は以下。
- docker-compose.yml - Dockerfile.db01 - Dockerfile.app01 - env.app01 ← 追加 - env.db01 ← 追加 - springbootapp01 - demo - target - demo.jar
前回の記事で、docker-compose.ymlの environmentに
記載していた内容を、それぞれのenvファイルに移します。
- env.app01
POSTGRES_USER=mydb POSTGRES_PASSWORD=postgres POSTGRES_DB=mydb DRIVER_CLASS_NAME=org.postgresql.Driver DATASOURCE=jdbc:postgresql://db01:5432/mydb
- env.db01
POSTGRES_USER=mydb POSTGRES_PASSWORD=postgres POSTGRES_DB=mydb
外部ファイルの作成はこれで完了です。
docker-compose.ymlの調整
では、docker-compose.ymlを先程作成したファイルを
読み込むよう修正します。
environmentの部分をenv_fileに変更し、
対象のファイルを指定します。
version: '3' networks: default: name: bridge mynetwork01: name: mynetwork01 services: db01: container_name: db01 build: context: . dockerfile: Dockerfile.db01 tty: false ports: - 5432:5432 networks: - mynetwork01 env_file: ← 変更 - env.db01 app01: container_name: app01 build: context: . dockerfile: Dockerfile.app01 tty: false ports: - 8080:8080 networks: - mynetwork01 env_file: ← 変更 - env.app01
これで完了です。
各環境の環境変数を確認すると、
envファイルに設定した内容が設定されているかと思います。
以上です。