在 gradle 中调用 spring boot 插件 bootBuildImage 任务时,会使用 packeto 创建一个 docker 镜像。它启动 springBoot 插件中指定的主类。您可以在下面找到 build.gradle 文件的摘录。
springBoot {
mainClass = 'MyMainApp'
}
bootBuildImage {
imageName = "$docker_repo/${project.name}"
}
调用时docker run
,docker会启动一个容器MyMainApp
。
但是,我想使用相同的 docker 映像运行另一个主类。我尝试了以下方法:
- 指定
-Dloader.main=MyOtherApp
为 cmd indocker run
-Dloader.main=MyOtherApp
在JAVA_TOOL_OPTIONS
环境变量中指定- 指定
LOADER_MAIN=MyOtherApp
为环境变量
这些选项都没有开始MyOtherApp
。