这是我的设置:
搬运工-compose.yml:
php:
container_name: php
image: pawlik/kinetic-php:5.5
env_file:
- .env.defaults
.env.defaults:
STORE_URL_SECURE=https://kinetic.docker.dev/
在正在运行的图像中,我有这么简单的脚本:
showvars.sh
echo $STORE_URL_SECURE
现在正在运行:
$ docker-compose run php bash showvars.sh
Starting data
https://kinetic.docker.dev/
看起来不错,但是
$ docker-compose run php echo $STORE_URL_SECURE
Starting data
# empty!
有什么区别?为什么在第二个例子中这个ENV var是空的?
答案 0 :(得分:2)
docker-compose run php echo $STORE_URL_SECURE
表示执行docker-compose命令的shell也解释$STORE_URL_SECURE
(未在该shell会话中定义或设置)。
因此# empty!
。
然而,这可行:
docker-compose run php /bin/sh -c 'echo $STORE_URL_SECURE'
(strong quotes or simple quotes阻止shell立即解释$STORE_URL_SECURE
)