2017-07-01 89 views
0

當我在docker-compose.yml中使用env_file時,它構建正確,但是當我嘗試使用docker-compose時,我的節點應用程序無法在process.env對象中找到env_file變量。爲什麼docker-compose env_file工作但環境呢?

這裏是我的搬運工,撰寫文件:

node1: 
container_name: node01 
env_file: ./env/node1.production.env 
#environment: 
    #- SOME_VALUE=9599 
build: 
    context: ./node1 
    dockerfile: dockerfile 
ports: 
    - "3000:3000" 
networks: 
    - dev_net 

這裏是我的node1.production.env文件:

SOME_VALUE=9599 

當我使用環境而定,而不是,我的節點的應用程序正常工作:

DOCKER版本: 17.03
DOCKER COMPOSE版本: 1.14
OS: CentOS的

+0

嗨,穆罕默德,歡迎來到SO。感謝您的問題。請花點時間查看此頁面,瞭解如何正確格式化(以便其他人可以更輕鬆地爲您提供幫助):https://stackoverflow.com/help/how-to-ask – petezurich

+1

您是否能夠概括一點更有人可以重現?我們沒有您的代碼或Dockerfile來重現。也許你可以嘗試https://gist.github.com/andyshinn/3034fa88e679e6357294e7a9b16b8197作爲開始,並看到它正常工作?這是我的例子,它工作正常。 –

+0

我試圖將node1.production.env的名字chage到otherName.production.env,它的工作原理,似乎我已經用該名稱導出了變量,現在我試圖動態地將.production更改爲.stage或.test以做一些像node_app.stage.env一樣的事情......你是怎麼做到的? –

回答

1

應該工作。我想你可能已經在node1.production.env文件中多次定義了變量。驗證env文件是否正確。

從你給出的代碼看來,你使用的語法看起來沒有錯誤,如果有的話,甚至可以在構建甚至可以開始之前報告它們。就我而言,我使用ENV文件,如下所示:

env_file: 
    - .env 

其中.env命名文件是存在於基本目錄。

相關問題