将配置加载到微服务Docker容器的最佳方法



我已经构建了一个Springboot应用程序并将其化为容器。我有两种将配置注入服务的方法。

  1. 作为Application.properties文件中的代码的一部分(硬编码)Multple配置文件和我的Dockerfile仅接受一个变量-dspring.profiles.active = $ {环境}作为CMD的一部分,以启动应用程序容器

Exp -applciation.properties:

春天: 配置文件:dev


春天: 配置文件:prod


  1. 加载属性文件到主机运行应用程序,并注入到开始时容器。

exp:docker run -d -env -file = emoveruct(dev).properties myApp:最新

我想知道行业在具有优势和缺点的微服务应用中注入属性的最佳方法是什么。

  • 您是否将配置保持在附近?

  • ,或者您希望在应用程序开始时将其注入依赖关系?

我的理解:我更喜欢更靠近容器的配置,因为我可以具有最小的依赖性,但是很小的更改将需要新的构建和部署

第二个选项具有优势,因为应用程序代码(图像)不需要更改,并且您可以将更新的配置注入容器重新启动。

在我的公司中,我们转到第一个解决方案,但是,我不确定它是否是行业标准。主要原因是,在构建Docker容器后,我们不太可能更改配置。

另外,如果您为不同的环境构建不同的容器,则将-Dspring.profiles.active=${environment}参数传递给容器运行命令不是很聪明(它始终是生产容器的产品)。相反,在dockerFile中,您只需复制适当的environment.properties

相关内容

最新更新