Docker runでシステム環境変数または環境別のプロパティファイルを指定する方法

当ページのリンクには広告が含まれています。
目次

概要

ローカルでDockerを起動する際、システム環境変数を指定するまたは環境別のプロパティファイルを指定する方法についてです。
説明はJava(SpringBoot)アプリを前提にしています。
 

前提

・ローカルPCのOSはWindows
・Docker build済のイメージがあること
・取得元のアプリ上でSystem.getenvが実装されていること
・Dockerのバージョンは4.9
 

コマンド

docker run -e "SPRING_PROFILES_ACTIVE=[each]" -e SLACK_CHANNEL=[channel] -e SLACK_TOKEN=[token] -p 8080:8080 -t [イメージ]

実行時に追加の変数を与える場合、「-e」オプションをつけます。

環境別プロパティファイル

SPRING_PROFILES_ACTIVE=[each]
[each]部分は、「application-[each].properties」に該当します。

つまり、application-prod.propertiesの場合、SPRING_PROFILES_ACTIVE=prodと指定します。
 

システム環境変数

上記の例ではSlackアプリとの連携用にシステム環境変数を設定しています。

■システム環境変数の設定

■実装

■コマンド
-e SLACK_CHANNEL=[channel] -e SLACK_TOKEN=[token]
-e オプションに対して、システム環境変数上の名称で指定します。
 

他の方法

ファイル上に保存して読み込む方法もありますので、気になる方は以下を参考にして下さい。
Docker Build Arguments and Environment Variables

 

まとめ

  • 実行時の変数は「-e」オプションを指定する・
  • 環境別プロパティファイルを指定する場合は、「SPRING_PROFILES_ACTIVE」を指定する。
  • システム環境変数を指定する場合は、システム環境変数の名称で指定する。

参考

Spring Boot with Docker
Docker Build Arguments and Environment Variables

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次