【发布时间】:2018-02-15 13:00:23
【问题描述】:
我正在尝试向docker run 提供动态生成的--env VAR1 --env VAR2 --env-file env.list 环境变量列表。
不幸的是,它不起作用。
- 对于
--env映射变量,变量在容器中不可见。 - 对于
--env-file提供的文件,docker 抱怨找不到文件:docker: open "env.list": no such file or directory.
详情
跑步:
# env_params contains either --env or --env-file arguments
MY_VAR=123
env_params='--env "MY_VAR"'
echo ${env_params}
docker run -it --rm \
${env_params} \
my_docker_image env | grep MY_VAR
不会输出任何东西。 MY_VAR 在容器内不可见。但是:
MY_VAR=123
docker run -it --rm \
--env "MY_VAR" \
my_docker_image env | grep MY_VAR
会起作用,123 会被打印出来。
以类似的方式,--env-file 在通过 env_params 提供时将不起作用,但在直接提供给 docker run 命令时将起作用。
我做错了什么?
【问题讨论】:
标签: bash environment-variables