docker-compose env_file在脚本中可用,但不能在运行命令中直接使用
这是我的设置:
泊坞窗,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!
有什么不同? 为什么在第二个例子中这个ENVvariables是空的?
docker-compose run php echo $STORE_URL_SECURE
表示执行docker-compose run php echo $STORE_URL_SECURE
-compose命令的shell也解释$STORE_URL_SECURE
(在shell会话中没有定义或设置)。
因此# empty!
。
但是,这将工作:
docker-compose run php /bin/sh -c 'echo $STORE_URL_SECURE'
(使用强引号或简单引号来防止shell立即解释$STORE_URL_SECURE
)