2017-06-29 18 views
0

docker compose(v2)でenv varを定義する必要があります。 は今、私はちょうどのようなものがあります。docker compose upコマンドにENV VARを追加できますか?

environment: 
- SERVERNAME=192.168.xx.xx 

をしかし、私は本当にこのアプローチ好きではありません。人々は作成ファイルを変更する必要があります。私はこれをもっとダイナミックにする方法がありますか?次のようなもの:

docker-compose up --env SERVERNAME=192.168.xx.xx 

これを行うにはどのような方法が最適ですか?

答えて

0

-e "SERVERNAME=192.168.1.1" -e "SOMETHING=bla"の構文で行うことができます。

また、HashicorpのVaultのようなものを使用してください。

+0

'ドックer-compose up --build -d -e SERVERNAME = "192.168.10.xxx" 'または' docker-compose -e SERVERNAME = "192.168.10.10" up'は動作しないようです。 – DenCowboy

1

私はそれは不可能だと思うが、ほとんど近いソリューションはデドッキングウィンドウdocsからのenvファイルに

それを渡すことができます:あなたがに介して外部ファイルから複数の環境変数を渡すことができ

サービスのコンテナは 'env_file'オプションを使用します。

ですから、たとえば、server.envのための変数でENVファイルを、作成、およびドッキングウィンドウ-composer.yml

env_file: 
    - server.env 

それともに.envファイルを作成することができ、それを参照することができますフォルダ

$ cat .env 
SERVERNAME=192.168.xx.xx 

とを使用して設定を変更します。

environment: 
    - SERVERNAME=${SERVERNAME} 
関連する問題