Мне нужно запустить образ докера, в котором я передаю кучу конфигураций 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 внутри контейнера докеров? Есть ли другой подход к этому?




Вероятно, проблема возникает из-за того, что CMD в вашем Dockerfile:
CMD java -jar -DinstallationDate=$INSTALLATION_DATE /test.jar
... подлежит разбиению на слова после раскрытия переменной $INSTALLATION_DATE. Чтобы отключить разбиение слов для второго аргумента java, рассмотрите возможность заключения переменной в двойные кавычки:
CMD java -jar -DinstallationDate = "$INSTALLATION_DATE" /test.jar
Взгляните на это