我有几个集装箱和码头工一起运行。其中之一是mysql,它需要设置一些变量。我把它们放在一个.env文件中:
MYSQL_USER='my_user'
MYSQL_PASSWORD='my_password'
MYSQL_ROOT_PASSWORD='supersecretpassword'
MYSQL_DATABASE='my_database'我能够成功地启动mysql容器。
当我想要使用另一个用于db迁移的服务时,问题就出现了,这需要在.env文件中设置以下变量:
SERVICE_DBUSER='my_user'
SERVICE_DBPASSWORD='my_password'
SERVICE_DBNAME='my_database'为了避免重复,我想要写的东西(,这里不起作用,)是这样的:
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。
我的问题是,有可能避免重复吗?
非常感谢。
发布于 2016-08-03 13:21:50
使用替代环境变量或${VARIABLE}引用YAML撰写文件时,将它们写入YAML撰写文件。
您仍然可以使用.env文件来设置默认环境。但是,当您想要引用一个变量时,将其放在撰写yaml的environment:部分:
environment:
SERVICE_DBUSER: "${MYSQL_USER}"
SERVICE_DBPASSWORD: "${MYSQL_PASSWORD}"
SERVICE_DBNAME: "${MYSQL_DATABASE}"然后,如果您在运行docker-compose时设置或源一个备用环境,您将得到替代的新值。
$ MYSQL_USER="other" MYSQL_PASSWORD="opass" docker-compose starthttps://stackoverflow.com/questions/38740189
复制相似问题