2016-09-17 9 views
1

を.envここに私のコンファイルがdev.ymlドッキングウィンドウ-構成env_fileファイル/場所を認識し、まだデフォルトを使用しようとしていないが、

version: '2' 

volumes: 
    rethinkdb_data_dev: {} 

services: 
    rethinkdb: 
    image: rethinkdb:latest 
    volumes: 
     - rethinkdb_data_dev:/home/rethinkdb_data 

    rabbitmq: 
    image: rabbitmq:latest 

    fumio: 
    build: 
     context: . 
     dockerfile: ./compose/fumio_dev/Dockerfile 
    depends_on: 
     - rethinkdb 
     - rabbitmq 
    links: 
     - rethinkdb 
     - rabbitmq 
    env_file: ./compose/fumio_dev/dev.env 
    environment: 
     - GIRLFRIEND_FUMIO_CONFIG=development 
     - GIRLFRIEND_FUMIO_NOSQLDATABASE_HOST=rethinkdb 
    ports: 
     - "${GIRLFRIEND_FUMIO_PORT}:8001" 

environmentdev.ymlファイル内の意図的なものですので、私はと内部それらを上書きすることができます必要ならばdev.env

dev.ymlファイルに対して、compose/fumio_dev/フォルダ内にあるMy dev.envファイルです。ここで

GIRLFRIEND_FUMIO_PORT=8000 

私はdocker-compose -f dev.yml build

enter image description here

を実行したときに、私はルートフォルダに.envファイルを提供する場合に何が起こるかだ、それがドッキングウィンドウ・コン、正常に動作env_fileの値を無視して、使用してみてください代わりにデフォルトの.envが使用されます。だから、ドッカーがenv_fileを作っても何とか意図したとおりに動作しないのですか、何か不足していますか?

私のドッカーの作成バージョンは1.8.0ですが、私はそれを1.7.1にダウングレードしましたが、まだ運がありません(pipを使用してインストールされています)。

+0

[簡単な例](https://gist.github.com/bmitch3020/2db1ec35e47c0ac4017ef9a5a0ddbf82)で問題を再現できませんでした。 – BMitch

+1

'env_file'とデフォルトの' .env'は異なる概念です-_- –

+1

私はちょうどあなたの 'ports'行に気付きました。あなたがコンテナの内部ではなくymlの内部でenvを更新しようとしているのを完全に見逃しました。 – BMitch

答えて

10

プロジェクトルートのファイル.envと、Composeファイルのenv_file:フィールドは、2つの異なる概念です。

.envは、デフォルト環境のの場合はとなります。このファイルで設定された値は、Composeファイル内で使用できます。

env_file:フィールドは、コンテナのデフォルト環境を設定するためのフィールドです。これで設定された値はコンテナで使用できますが、Composeファイルでは使用できません。

詳細については、https://docs.docker.com/compose/env-file/を参照してください。

+1

ええ、私はそのリンクを既に読んでいますが、 'env_file'のドキュメントでは、' env_file'が 'compose'で使用できるかどうかは言及されていません。 –

関連する問題