想象一下,我正在等待
的容器中有一个应用程序(我无法修改代码源本身)DB_USR
DB_HOST
DB_PASSWD
DB_NAME
作为环境变量来连接MySQL数据库 所以我将这个容器链接到一个MySQL容器
但导出到我的应用程序容器的MySQL容器中的环境变量名称不匹配。
现在,我发现这样做的唯一方法是将应用程序二进制文件包装到bash脚本中,并导出环境变量以进行匹配。
docker是否提供任何标准/更好的映射?
答案 0 :(得分:0)
您是否尝试使用以下命令在docker中运行应用程序:
docker run -d \
-e DB_HOST=${MY_OWN_ENV_HOSTNAME} \
-e DB_USR=${MY_OWN_ENV_USERNAME} \
-e DB_PASSWD=${MY_OWN_ENV_PASSWORD} \
-e DB_NAME=${MY_OWN_ENV_DBNAME} \
your-application-container
当然还有运行所需的其他参数。
或者,您可以使用环境变量创建文件env.txt:
# Definitions of environment variables
DB_HOST=${MY_OWN_ENV_HOSTNAME}
DB_USR=${MY_OWN_ENV_USERNAME}
DB_PASSWD=${MY_OWN_ENV_PASSWORD}
DB_NAME=${MY_OWN_ENV_DBNAME}
然后使用命令
在docker中运行应用程序docker run -d --env-file ./env.txt your-application-container