Declare env variable which value include space for docker/docker-compose

前端 未结 3 1429
清歌不尽
清歌不尽 2020-12-18 22:12

I have an env variable value like this:
TEST_VAR=The value

Do anybody knowns whether this is legal? should I place \" around the value

相关标签:
3条回答
  • 2020-12-18 22:36

    Lets see the result running the following compose file:

    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 Result:

    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
    

    Therefore, it is legal to have spaces in the env value.

    0 讨论(0)
  • 2020-12-18 22:36

    You can escape the space with a \:

    TEST_VAR=The\ value
    

    Edit: This is how I pass them when starting the container (i.e. docker run -e TEST_VAR=The\ value hello-world). If you're using docker-compose or an env file, see the answer by @yamenk.

    0 讨论(0)
  • 2020-12-18 22:43

    In Dockerfile use doublequotes, do not use singlequotes because they do not expand variables inside, excerp from passing buildargs/envs to dockerfile and into a python script below:

    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
    
    0 讨论(0)
提交回复
热议问题