我需要运行一个docker映像,在其中将一堆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
它没有给我一个错误,但是该参数为空字符串。 我还尝试使用“ \”转义空格字符,但仍然无法正常工作。
任何人都知道如何将此参数发送到docker容器内的jar执行中?还有另一种方法吗?
答案 0 :(得分:2)
该问题很可能是由于您的CMD
中的Dockerfile
:
CMD java -jar -DinstallationDate=$INSTALLATION_DATE /test.jar
...在展开变量$INSTALLATION_DATE
之后会进行分词。为了关闭java
的第二个参数的单词拆分,请考虑将变量用双引号引起来:
CMD java -jar -DinstallationDate="$INSTALLATION_DATE" /test.jar