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