Точки в переменной ENV в dockerfile не работают - PullRequest
1 голос
/ 21 октября 2019

Когда я объявляю переменную 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: не может перейти к .config.location

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Обратитесь к переменной с $ {framework.config.location}

0 голосов
/ 21 октября 2019

Я думаю, framework.config.location (и вообще строка, содержащая точки) не является допустимым идентификатором с точки зрения оболочек Unix, таких как bash.

Однако вы можете использовать его в разделе ENV вашего Dockerfile:результатом будет что-то вроде

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

, но вы не можете получить доступ к значению переменной через $framework.config.location orf {$framework.config.location}. Вы можете прочитать его, используя value=$(env | grep 'framework.config.location' | cut -f 2 -d '='), а затем использовать как $value ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...