首页 > 解决方案 > 如何在没有 shell 扩展的情况下在 JVM 启动选项中使用环境变量

问题描述

我想使用环境变量来设置-XX:HeapDumpPathJVM 启动选项。此外,我希望它在 Docker 容器中工作,并且我的 JVM 进程获得 PID 1。这似乎使这个问题中提出的所有解决方案对我的情况都无效。

我目前的解决方案如下所示:

如果我使用它构建它docker build --tag=test .然后运行它,CID=$(docker run --rm -e HEAP_DUMP_PATH="/tmp" -d test) && docker exec $CID ps -f我会得到:

UID PID PPID C STIME TTY TIME CMD
根 1 0 0 16:18 ?00:00:00 java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -jar build/libs/app.jar
root 21 0 0 16:18?00:00:00 ps -f

所以它似乎正在工作。但这似乎也不必要地复杂。有没有更好/更清洁的方法来实现这一目标?

更新-c:中删除exec -c

标签: javadocker

解决方案


推荐阅读