当我用名称中的点声明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
答案 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}引用变量