Java 使用Docker时的Spring引导外部配置

Java 使用Docker时的Spring引导外部配置,java,docker,spring-boot,Java,Docker,Spring Boot,我正在开发一个SpringBoot应用程序,我想用Docker部署它 我遇到的问题是我们需要将属性文件存储在服务器上,类似于Tomcat允许您将属性文件放在/lib中的方式 在Docker内部运行时,如何让Spring Boot使用此文件?Docker提供了使用卷: 除了使用-v标志创建卷外,还可以将目录从自己的主机装载到容器中 $sudo docker run-d-p--name yourapp-v/lib:/lib yourcontainer/name 因此,在您的容器化应用程序中,您只需查

我正在开发一个SpringBoot应用程序,我想用Docker部署它

我遇到的问题是我们需要将属性文件存储在服务器上,类似于Tomcat允许您将属性文件放在/lib中的方式

在Docker内部运行时,如何让Spring Boot使用此文件?

Docker提供了使用卷:

除了使用-v标志创建卷外,还可以将目录从自己的主机装载到容器中

$sudo docker run-d-p--name yourapp-v/lib:/lib yourcontainer/name

因此,在您的容器化应用程序中,您只需查看/lib(或您认为方便装载它的任何地方),在预订容器时,您可以指定要装载的主机目录

我使用的另一个选项是创建一个只包含配置的容器(使用busybox或其他小配置),然后将其中的目录导出为在其他容器中共享的卷。这确实在您必须管理的容器之间建立了依赖关系,但它使您能够对配置进行版本化,而不必将其放在主机文件系统上


以上链接讨论了这两种策略。

您也可以直接覆盖application.properties文件:


docker run-v custom.properties:/data/application.properties spring boot app

谢谢@Todd。在主机上挂载目录起作用了&应用程序正确地选择了/config目录。谢谢你的帮助。