使用 docker run -e 传递的环境变量未按预期工作

问题描述 投票:0回答:1

为什么下面不打印“1”?

docker run --rm -e ONE='1' alpine echo $ONE
docker
1个回答
0
投票

问题在于

$ONE
在传递给 Docker 之前已由主机 shell 展开。要解决此问题,您需要在容器的 shell 内执行命令,如下所示:

docker run --rm -e ONE='1' alpine sh -c 'echo $ONE'

这确保了

$ONE
在容器内被解释,并且输出将正确为
1

© www.soinside.com 2019 - 2024. All rights reserved.