Переменная окружения Docker с пробелами - PullRequest
0 голосов
/ 09 мая 2019

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

Dockerfile:

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

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

Ошибка: невозможно получить доступ к jarfile 15: 00: 00

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

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

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

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

1 Ответ

2 голосов
/ 09 мая 2019

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

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

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

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