【发布时间】:2017-07-15 14:28:35
【问题描述】:
我想在 docker 运行期间将 JSON 文件的内容作为环境变量传递。 docker run 在 systemd 服务文件中初始化。
我做了类似的事情:
export TEMP_CONFIG=$(cat /etc/config.json)
并按如下方式运行 docker 容器:
docker run \
--env SERVICE_NAME=${CONTAINER_NAME} \
--env TEMP_CONFIG \
但是当我在 docker 容器内并尝试回显变量 ${TEMP_CONFIG} 时,它是空的。
root@ip-10-109-7-77:/usr/local/nginx/conf# echo ${TEMP_CONFIG}
root@ip-10-109-7-77:/usr/local/nginx/conf#
有没有办法将 JSON 文件的内容作为环境变量传递?
顺便说一句:
--env TEMP_CONFIG=$(cat /etc/config.json) \
执行上述操作会引发异常:
docker: Error parsing reference: "\"conf\"" is not a valid repository/tag.
config.json的内容是:
{
"conf" :
{
"appname" :
{
"dbhost" : "xxxx",
"dbname" : "dbname",
"dbuser" : "user",
"dbpassword" : "xxxxx",
"hostname" : "xxxxxx"
},
"cacheBaseDir" : "/storage/",
"iccprofile" : "/etc/nginx/RGB.V1.0.icc",
"tmpDir" : "/tmp",
"mdb" :
{
"user" : "user",
"password" : "xxxxx",
"rights" : "GlobalAdministrator",
"company" : "somecompany"
}
}
}
非常感谢任何帮助。
【问题讨论】:
标签: json docker environment-variables