我已经构建了一个springboot应用程序并将其容器化。我有两种方法可以为服务注入配置。
弹簧: 个人资料:dev
弹簧: 个人资料:prod
exp:docker run -d --env-file = environment(dev).properties myapp:latest
我想知道行业在具有优势和劣势的微服务应用中注入属性的最佳方式是什么。
您是否将配置保持在应用附近?
或者您更喜欢在app启动时将其作为依赖项注入?
我的理解:我更喜欢靠近容器的配置,因为我可以拥有最小的依赖性,但是一个小的改变将保证新的构建和部署
第二个选项具有优势,因为应用程序代码(图像)不需要更改,您可以通过重新启动容器来注入更新的配置。
答案 0 :(得分:1)
在我的公司,我们转到第一个解决方案,但是,我不确定它是否是行业标准。主要原因是我们在构建docker容器后不太可能更改配置。
此外,如果您为不同的环境构建不同的容器,则将-Dspring.profiles.active=${environment}
参数传递给容器运行命令不是很聪明(它始终是生产容器的Prod)。相反,在dockerFile
中,您只需复制相应的environment.properties
。