Docker

docker-composeの環境変数にデフォルト値を設定する方法

docker-composeの環境変数にデフォルト値を設定する方法

この記事では、docker-compose.yamlで指定する環境変数にデフォルト値を設定する方法をお伝えします。

少しでも参考になれば幸いです。

docker-composeの環境変数にデフォルト値を設定する方法

以下のようにnginxコンテナを立てる状況を想定します。

nginx:
  image: nginx 
  ports:
    - 8080:80

 

現状だと、書いてある通り8080番のポートが使われます。

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に上書きしてみました。

 

この状態で実際にコンテナを立ち上げてみると、、

8070ポートが立ち上がる

 

.envに設定した8070番ポートでコンテナが立ち上がっています。

 

docker-composeの環境変数にデフォルト値を設定する方法まとめ

今回は、docker-compose.yamlの環境変数にデフォルト値を設定する方法をまとめてみました。

環境変数にデフォルト値を設定し、その値を上書きするには、以下の2ステップが必要です。

  • ${変数名:-デフォルト値}の形式でdocker-compose.yamlに設定する
  • .envをdocker-composeと同階層に設定し、「変数名=上書きする値」の形で値を指定する

 

今回は以上となります。

この記事が、docker-composeの環境変数にデフォルト値を設定する上で少しでも参考になっていれば幸いです。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA