Dockerfile базового образа
Код: Выделить всё
FROM oraclelinux:7-slim
...
ENV JAVA_HOME=/usr/java/jdk-8
...
В дочерних изображениях я использую эти предварительно настроенные переменные, и все работает нормально.Но программа проверки качества кода справедливо жалуется на отсутствие деклараций в дочерних изображениях и выдает предупреждения. Эти предупреждения верны, поскольку средство проверки качества кода не видит, что эти переменные определены в родительском образе.
Dockerfile дочернего образа:
Код: Выделить всё
FROM my-base-image:1.0.0
...
RUN $JAVA_HOME/bin/java ...
Я ищу что-то похожее на то, что есть в bash: JAVA_HOME="${1:-$DEFAULT_VALUE}".
Как это, какой из конечно, в Dockerfile не работает: ENV JAVA_HOME="${this:-"default-value"}"
Я знаю, что могу использовать * .env и установить там значения по умолчанию, а также я могу определить значения по умолчанию в файле docker-compose.yml.
Но мой вопрос не связан с этим к этому.
Мой вопрос связан со вариантом использования, где ENV, например ENV JAVA_HOME="...", определяется в родительском изображении.
Подробнее здесь: https://stackoverflow.com/questions/745 ... dockerfile
Мобильная версия