gpt4 book ai didi

docker - 如何使用 golang 在不同容器中使用 docker-compose env 文件变量?

转载 作者:IT王子 更新时间:2023-10-29 02:11:16 26 4
gpt4 key购买 nike

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

.环境

MONGO_USERNSME=user
MONGO_USERNSME=password

我在 docker-compose.yml 的路径中有 .env 文件,我需要在其他容器(articaleServer、管家、服务器)中使用变量形成它,比如 go 文件

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

但是 go 看不到它并传递 nil

最佳答案

.env 文件与 docker-compose.yml 位于同一目录中,仅用于组合文件中的变量替换。

另一方面,您可以定义一个 env_file 键以在运行时将环境变量从文件传递到容器:

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

它的工作方式类似于 Dockerfiledocker run -e 中的环境语句。

正如列表类型所暗示的,您可以使用多个文件来覆盖特定服务的一些通用配置键。

关于docker - 如何使用 golang 在不同容器中使用 docker-compose env 文件变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46404379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com