Jav*_*aSa 9 docker docker-compose
我有一个像这样的env变量值:
TEST_VAR=The value
有谁知道这是否合法?我应该"在码头工具中根据需要放置这个值吗?谢谢
编辑:引号不是一个好的解决方案,因为它将成为val的一部分参见此处.
yam*_*enk 10
让我们看看运行以下撰写文件的结果:
version: "3"
services:
service:
image: alpine
command: env
env_file: env.conf
Run Code Online (Sandbox Code Playgroud)
env.conf:
TEST_VAR1=The value
TEST_VAR2="The value2"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
因此,在env值中包含空格是合法的.
你可以通过以下方式逃离空间\:
TEST_VAR=The\ value
Run Code Online (Sandbox Code Playgroud)
编辑:这是我在启动容器时传递它们的方式(即docker run -e TEST_VAR=The\ value hello-world).如果您正在使用docker-compose或使用env文件,请参阅@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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9183 次 |
| 最近记录: |