声明env变量哪个值包含docker / docker-compose的空间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了声明env变量哪个值包含docker / docker-compose的空间相关的知识,希望对你有一定的参考价值。
我有一个像这样的env变量值:
TEST_VAR=The value
有谁知道这是否合法?我应该将"
放在这个值的周围,以便在docker中根据需要进行解释吗?谢谢
编辑:引号将不是一个很好的解决方案,因为它将成为val的一部分参见here。
答案
让我们看看运行以下撰写文件的结果:
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-compose
或env文件,请参阅the answer by @yamenk。
另一答案
在Dockerfile中使用双引号,不要使用单引号,因为它们不扩展变量,摘自传递buildargs / envs到dockerfile并进入下面的python脚本:
ARG HOST="welfare-dev testapi"
ENV HOST "${HOST}"
ARG SITENAME="Institusjon"
ENV SITENAME "${SITENAME}"
RUN cd ${TESTDIR}/sensiotools/sensiotools && cd test && \
./testapi-events.py --activate --sitename="${SITENAME}" --host="${HOST}" --dbcheck --debug --wait=0.5 && \
./testapi-events.py --deactivate --sitename="${SITENAME}" --host="${HOST}" --dbcheck --debug
以上是关于声明env变量哪个值包含docker / docker-compose的空间的主要内容,如果未能解决你的问题,请参考以下文章