.
├── 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
我在docker-compose.yml的路径中有.env文件,我需要在其他容器(articaleServer,butler,server)中使用变量形式,如
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{"mongodb://mongo:27017"},
Username: os.Getenv("MONGO_USERNSME"),
Password: os.Getenv("MONGO_PASSWORD"),
}
但是没有看到并通过nil
答案 0 :(得分:1)
与.env
放在同一目录中的docker-compose.yml
文件仅用于撰写文件中的变量替换。
另一方面,您可以定义env_file
密钥以在运行时将env变量从文件传递到容器:
services:
some_service:
image: someimg
env_file:
- .env
它的作用类似于Dockerfile
或docker run -e
中的环境声明。
由于隐含的列表类型可以使用多个文件来覆盖特定服务的某些通用配置密钥。