dockerfile中的ENV变量中的点不起作用

时间:2019-10-21 08:18:38

标签: docker

当我用名称中的点声明ENV变量时,它们的设置不正确。对于要进行码头化的框架,需要设置以下变量:

  framework.config.location 

Dockerfile

ENV JAVA_HOME=/opt/java/jre1.8 \
framework.config.location=$HOME/framework/config 

RUN echo $framework.config.location && \
    cd $framework.config.location
  

.config.location

     

/ bin / sh:1:cd:无法cd到.config.location

2 个答案:

答案 0 :(得分:0)

从bash之类的Unix shell的角度来看,我认为framework.config.location(通常是一个包含点的字符串)不是有效的标识符。

但是,您可以在Dockerfile的ENV部分使用它:结果类似

env framework.config.location=$HOME/framework/config TheCommand

,但是您无法通过$framework.config.location{$framework.config.location}访问变量的值。 您可以使用value=$(env | grep 'framework.config.location' | cut -f 2 -d '=')阅读它,然后将其用作$value ...

答案 1 :(得分:0)

使用$ {framework.config.location}引用变量