2016-08-02 5 views
3

ドッキングウィンドウ-compose.ymlファイル内のenv変数を取得または設定します。言い換えれば私は定義が<code>docker-compose.yml</code>ファイルとを持っている

extra_hosts: 
- "localhost:<get MY_MACHINE_IP from env if it exists, if not set MY_MACHINE_IP env variable with value <docker-machine-ip>>" 

私は何を達成したいことなどのアクションを実行することである - このENVを設定し、私はされていない場合、それをMY_MACHINE_IPが既に指定されている場合、extra_hostsセクションでそれを定義取得したいです。 value = my dockerマシンのIPを持つ変数。

可能ですか?

答えて

0

は、ドッキングウィンドウのマニュアルに従って

docker-compose run SERVICE env 

は、だから私は、変数はあなたが考えることとしてグローバルではないと思いますはいに。それらをパラメータとして渡す必要があります。 thisを読んでください。

+0

の中から、あなたRUNスクリプトに適切な値を得るためにあなたのコンテナやソースにコピーできるファイル.dcw_env_vars.incを書き出すあなたは私の質問に応じてくれ例を与えることができますか?どのように見えるでしょうか?私はあなたを完全に理解していないと思うので。前もって感謝します。 – bodley

+0

この環境では、 "MY_MACHINE_IP = 0.0.0.0"を読むことができます。 docker-compsoe UPを使用している場合はさらに多くのオプションがあります - RUNではなくhttps://docs.docker.com/compose/environment-variables/ – TreantBG

0

これにはruamel.dcwというパッケージを使用できます(Docker Compose Wrapperの場合はdcw、免責事項:私はそのパッケージの著者です)。それはあなたのキーを持つセクションをdocker-compose.yamlファイルに作成することができます。このセクションはファイルを通常のdocker-composeに渡す前に取り除かれます。そのセクションは次のように見ることができます:

user-data: 
    author: Your Name <[email protected]> 
    description: container for postfix/submission 
    env-defaults: 
    PORT: 587 # override during development 
    NAME: submission 
    DOCKER_BASE: /data0/DATA 

、その後、あなたは、環境変数でこれらのデフォルト値を上書きするオプションを使用して、ファイルの残りの部分で{PORT}{NAME}{DOCKER_BASE}を使用することができます。

ユーティリティもあなたがDockerfile

+0

いくつかの "specials"には 'HOST_IP: Anthon

関連する問題