如何正确传递spring Boot jvmArguments到docker?

hyrbngr7  于 2023-03-29  发布在  Docker
关注(0)|答案(1)|浏览(97)

我有一个spring-boot应用程序,我使用它运行:
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dlocal=true -DignoredName=GREGORY"
现在我已经创建了一个docker镜像,使用:mvn spring-boot:build-image
然而,我似乎不能让它在docker中正常运行,我认为正确的运行方式是使用-e,但它似乎没有被选中。
我尝试的命令:docker run -it -p8080:8080 librarybooks:1.0.0-SNAPSHOT -e spring-boot.run.jvmArguments="-Dlocal=true -DignoredName=GREGORY"

jecbmhm3

jecbmhm31#

你的命令不起作用的原因是因为你正在向docker run传递-e选项,该选项用于设置环境变量,但你试图使用它向Sping Boot 应用程序传递JVM参数。
要在Docker容器中运行Sping Boot 应用程序时将JVM参数传递给它,您可以使用JAVA_TOOL_OPTIONS环境变量。下面是如何修改docker run命令以包含JVM参数的示例:

docker run -it -p 8080:8080 -e "JAVA_TOOL_OPTIONS=-Dlocal=true -DignoredName=GREGORY" librarybooks:1.0.0-SNAPSHOT

在本例中,JAVA_TOOL_OPTIONS环境变量被设置为字符串“-Dlocal=true -DignoredName=GREGORY”,当您的Sping Boot 应用程序启动时,JVM将拾取该字符串。

相关问题