如何使用docker在golang的不同容器中组合环境文件变量?
环境署署长 我在docker-compose.yml路径中有.env文件,我需要在go文件中的其他容器(ArticalServer、butler、server)中使用变量,如如何使用docker在golang的不同容器中组合环境文件变量?,docker,go,docker-compose,Docker,Go,Docker Compose,环境署署长 我在docker-compose.yml路径中有.env文件,我需要在go文件中的其他容器(ArticalServer、butler、server)中使用变量,如 MONGO_USERNSME=user MONGO_USERNSME=password 但是go没有看到它,并且传递nil与docker compose位于同一目录中的.env文件。yml仅用于compose文件中的变量替换 另一方面,您可以定义env_file键,以便在运行时将env vars从文件传递到容器: mon
MONGO_USERNSME=user
MONGO_USERNSME=password
但是go没有看到它,并且传递nil与docker compose位于同一目录中的
.env
文件。yml仅用于compose文件中的变量替换
另一方面,您可以定义env_file
键,以便在运行时将env vars从文件传递到容器:
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{"mongodb://mongo:27017"},
Username: os.Getenv("MONGO_USERNSME"),
Password: os.Getenv("MONGO_PASSWORD"),
}
它的工作原理类似于Dockerfile
或dockerrun-e
中的环境语句
正如列表类型所暗示的那样,例如,您可以使用多个文件覆盖特定服务的某些通用配置键。您可以提供docker compose文件吗?
mongoDBDialInfo := &mgo.DialInfo{
Addrs: []string{"mongodb://mongo:27017"},
Username: os.Getenv("MONGO_USERNSME"),
Password: os.Getenv("MONGO_PASSWORD"),
}
services:
some_service:
image: someimg
env_file:
- .env