如何在不同的容器中使用docker-comp env文件variables与golang?

. ├── 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

 MONGO_USERNSME=user MONGO_USERNSME=password 

我有.env文件的path与docker-compose.yml,我需要使用variablesforms在其他容器(articaleServer,pipe家,服务器)

 mongoDBDialInfo := &mgo.DialInfo{ Addrs: []string{"mongodb://mongo:27017"}, Username: os.Getenv("MONGO_USERNSME"), Password: os.Getenv("MONGO_PASSWORD"), } 

但是不去看,通过零

放置在与docker-compose.yml相同目录中的docker-compose.yml文件仅用于撰写文件中的variablesreplace。

另一方面,你可以定义一个env_file关键字,在运行时将env vars从文件传递给容器:

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

它的工作方式与DockerfileDockerfile docker run -e的环境语句Dockerfile

正如列表types所暗示的,您可以使用多个文件来覆盖特定服务的一些通用configuration密钥。