【问题标题】:Docker environment variable with spaces带空格的 Docker 环境变量
【发布时间】:2019-09-27 06:43:28
【问题描述】:

我需要运行一个 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 执行?还有其他方法吗?

【问题讨论】:

标签: java docker jar environment-variables


【解决方案1】:

问题可能是因为您的Dockerfile 中的CMD

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多