Docker

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

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-Docker
-,

執筆者:


comment

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

CAPTCHA


関連記事

関連記事はありませんでした

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。