java - 带空格的 Docker 环境变量
问题描述
我需要运行一个 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 执行?还有另一种方法吗?
解决方案
问题很可能发生,因为CMD
在您的Dockerfile
:
CMD java -jar -DinstallationDate=$INSTALLATION_DATE /test.jar
...在变量$INSTALLATION_DATE
展开后会进行分词。为了关闭对 的第二个参数的分词java
,请考虑将变量括在双引号中:
CMD java -jar -DinstallationDate="$INSTALLATION_DATE" /test.jar
推荐阅读
- git - “git log --follow”总是忽略合并提交
- python - 如何在 Python 中捕获特定的索引错误并为此附加新值?
- javascript - 是否可以访问表外的 BTable 道具?
- google-sheets - 跨工作表的条件格式以基于大于比较突出显示单元格
- node.js - 如何在打字稿中合并来自不同文件的不同快递路线
- python - 具有图像尺寸的预测时的 Faster-RCNN Pytorch 问题
- ios - 将图像文件保存在文档目录中并从中获取图像文件并在 Objective C 中的视图上显示
- javascript - 当我使用 app.js 中的模板时,当我使用 zepto.js(甚至是 jquery)时,我无法通过 ajax 连接 php 代码
- python-3.x - 如何在特征(列)少于训练集的样本上测试 nlp 模型?
- unix - Sed 命令将检查我的文件的第二列并删除匹配的数据