声明envvariables,其值包括docker / docker-compose的空间
我有一个像这样的envvariables值:
TEST_VAR=The value
有谁知道这是否合法? 我应该把这个值放在Docker的需要解释的位置吗?谢谢
编辑 :引号不会是一个很好的解决scheme,因为它是val的一部分,请参阅这里的参考。
让我们看看运行以下组成文件的结果:
version: "3" services: service: image: alpine command: env env_file: env.conf
env.conf:
TEST_VAR1=The value TEST_VAR2="The value2"
docker-compose up
结果:
service_1 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin service_1 | TEST_VAR2="The value2" service_1 | TEST_VAR1=The value service_1 | HOME=/root
因此,env值中有空格是合法的。
你可以用\
来逃避空间:
TEST_VAR=The\ value
编辑 :这是我如何通过他们在启动容器时(即docker run -e TEST_VAR=The\ value hello-world
)。 如果您使用的是docker docker-compose
或env文件,请参阅@yamenk的答案 。