gpt4 book ai didi

java - 带空格的 Docker 环境变量

转载 作者:行者123 更新时间:2023-12-02 01:31:02 25 4
gpt4 key购买 nike

我需要运行一个 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

问题是当我运行它时,它给出以下错误:

Error: Unable to access jarfile 15:00:00

我尝试使用 json 表示法运行它,例如:

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

它没有给我一个错误,但参数是一个空字符串。我也尝试用“\”转义空格字符,但仍然不起作用。

有人知道如何将此参数发送到 docker 容器内的 jar 执行吗?还有其他方法吗?

最佳答案

出现此问题的原因可能是 Dockerfile 中的 CMD:

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

...在变量 $INSTALLATION_DATE 展开后会进行分词。为了关闭 java 的第二个参数的分词功能,请考虑将变量括在双引号中:

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

关于java - 带空格的 Docker 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56059255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com