首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置指向码头上相同值的多个env变量?

如何设置指向码头上相同值的多个env变量?
EN

Stack Overflow用户
提问于 2016-08-03 09:52:28
回答 1查看 2.5K关注 0票数 4

我有几个集装箱和码头工一起运行。其中之一是mysql,它需要设置一些变量。我把它们放在一个.env文件中:

代码语言:javascript
复制
MYSQL_USER='my_user'
MYSQL_PASSWORD='my_password'
MYSQL_ROOT_PASSWORD='supersecretpassword'
MYSQL_DATABASE='my_database'

我能够成功地启动mysql容器。

当我想要使用另一个用于db迁移的服务时,问题就出现了,这需要在.env文件中设置以下变量:

代码语言:javascript
复制
SERVICE_DBUSER='my_user'
SERVICE_DBPASSWORD='my_password'
SERVICE_DBNAME='my_database'

为了避免重复,我想要写的东西(,这里不起作用,)是这样的:

代码语言:javascript
复制
SERVICE_DBUSER="$MYSQL_USER"
SERVICE_DBPASSWORD="$MYSQL_PASSWORD"
SERVICE_DBNAME="$MYSQL_DATABASE"

但码头不认识到这一点,也不执行替代。在码头医生中,它还声明了expects each line in an env file to be in VAR=VAL format

我的问题是,有可能避免重复吗?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2016-08-03 13:21:50

使用替代环境变量${VARIABLE}引用YAML撰写文件时,将它们写入YAML撰写文件。

您仍然可以使用.env文件来设置默认环境。但是,当您想要引用一个变量时,将其放在撰写yaml的environment:部分:

代码语言:javascript
复制
environment:
  SERVICE_DBUSER: "${MYSQL_USER}"
  SERVICE_DBPASSWORD: "${MYSQL_PASSWORD}"
  SERVICE_DBNAME: "${MYSQL_DATABASE}"

然后,如果您在运行docker-compose时设置或源一个备用环境,您将得到替代的新值。

代码语言:javascript
复制
$ MYSQL_USER="other" MYSQL_PASSWORD="opass" docker-compose start
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38740189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档