2017-09-25 66 views
1
. 
├── articaleServer 
│ ├── Dockerfile 
│ ├── main.go 
│ └── sources.json 
├── butler 
│ ├── Dockerfile 
│ ├── main.py 
│ └── requirements.txt 
├── docker-compose.yml 
├── frontEnd 
│ ├── Dockerfile 
│ ├── main.go 
│ ├── tags.json 
│ └── templates 
│  ├── auth.html 
│  ├── feed.html 
│  ├── footer.html 
│  ├── header.html 
│  ├── main.html 
│  └── today.html 
└── server 
    ├── Dockerfile 
    ├── keys 
    │ ├── app.rsa 
    │ └── app.rsa.pub 
    └── main.go 

.ENV如何在不同的容器中使用docker-compose env文件變量與golang?

MONGO_USERNSME=user 
MONGO_USERNSME=password 

我在泊塢窗,compose.yml路徑.ENV文件,我需要用變量的形式,它在像

去文件其他容器(articaleServer,管家,服務器)
mongoDBDialInfo := &mgo.DialInfo{ 
     Addrs: []string{"mongodb://mongo:27017"}, 
     Username: os.Getenv("MONGO_USERNSME"), 
     Password: os.Getenv("MONGO_PASSWORD"), 
    } 

但簡化版,去看看它,並通過零

+0

你能提供碼頭合成文件嗎? – yamenk

+0

[撰寫文件參考](https://docs.docker.com/compose/compose-file/#env_file) – mkopriva

回答

0

.env文件放在同一個目錄中docker-compose.yml是使用d僅用於組合文件中的變量替換。

在另一方面,你可以定義一個env_file鍵通ENV從文件到容器在運行時瓦爾:

services: 
    some_service: 
    image: someimg 
     env_file: 
     - .env 

它是這樣工作的環境聲明的Dockerfiledocker run -e

由於列表類型暗示您可以使用多個文件來覆蓋特定服務的某個通用配置密鑰。