Переменная среды Docker с пробелами

Мне нужно запустить образ докера, в котором я передаю кучу конфигураций jvm в файл jar. Я передаю конфиги через параметры -e, как показано ниже.

Докерфайл:

FROM openjdk:9-jre

COPY test.jar /

CMD java -jar -DinstallationDate=$INSTALLATION_DATE /test.jar

Команда выполнения:

docker run -e INSTALLATION_DATE = "03.05.10.2019 15:00:00" space

Проблема в том, что когда я запускаю это, это дает мне следующую ошибку:

Error: Unable to access jarfile 15:00:00

Я попытался запустить его с нотацией json, например:

docker run -e ["INSTALLATION_DATE","03.05.10.2019 15:00:00"] space

Это не дает мне ошибки, но параметр приходит как пустая строка. Я также пытался избежать пробела с помощью «\», но все равно не работал.

Кто-нибудь знает, как я могу отправить этот параметр для выполнения jar внутри контейнера докеров? Есть ли другой подход к этому?

Взгляните на это

Michał Krzywański 09.05.2019 14:23
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
4 360
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вероятно, проблема возникает из-за того, что CMD в вашем Dockerfile:

CMD java -jar -DinstallationDate=$INSTALLATION_DATE /test.jar

... подлежит разбиению на слова после раскрытия переменной $INSTALLATION_DATE. Чтобы отключить разбиение слов для второго аргумента java, рассмотрите возможность заключения переменной в двойные кавычки:

CMD java -jar -DinstallationDate = "$INSTALLATION_DATE" /test.jar

Другие вопросы по теме