この記事では、docker-compose.yamlで指定する環境変数にデフォルト値を設定する方法をお伝えします。
少しでも参考になれば幸いです。
Sponsored Link
docker-composeの環境変数にデフォルト値を設定する方法
以下のようにnginxコンテナを立てる状況を想定します。
nginx: image: nginx ports: - 8080:80
現状だと、書いてある通り8080番のポートが使われます。

この状況で、8080番を「デフォルト」のポートとして設定したい場合は、以下のように記述します。
nginx: image: nginx ports: - "${NGINX_PORT:-8080}:80"
もしくは、
nginx: image: nginx ports: - ${NGINX_PORT:-8080}:80
これで、8080をデフォルトの値とすることができます。(NGINX_PORTの部分はどんな値でも大丈夫です)
さらに、環境によってこのデフォルト値を切り替えたい場合は、以下のような.envをdocker-compose.yamlと同階層に設定します。
NGINX_PORT=8070
今回は、NGINX_PORTの値を8070に上書きしてみました。
この状態で実際にコンテナを立ち上げてみると、、

.envに設定した8070番ポートでコンテナが立ち上がっています。
docker-composeの環境変数にデフォルト値を設定する方法まとめ
今回は、docker-compose.yamlの環境変数にデフォルト値を設定する方法をまとめてみました。
環境変数にデフォルト値を設定し、その値を上書きするには、以下の2ステップが必要です。
- ${変数名:-デフォルト値}の形式でdocker-compose.yamlに設定する
- .envをdocker-composeと同階層に設定し、「変数名=上書きする値」の形で値を指定する
今回は以上となります。
この記事が、docker-composeの環境変数にデフォルト値を設定する上で少しでも参考になっていれば幸いです。