Springboot使用docker-compose实现动态配置过程

使用docker-compose实现动态配置

Springboot应用在打包的时候我们希望可以在项目启动的时候可以修改application.property或者yml中的配置;而不是在打包docker镜像的时候这个值确定后面不可以修改,这个时候可以通过yml提供的环境变量的功能来实现这个需求;         

在yml文件中,通过${Envirment_variable}的方式可以获取系统环境变量中的值;于是可以通过把环境变量配置在docker-compose文件中,这样在docker镜像启动的时候,通过docker-compose中指定的变量,来定义应用中的配置;         

例如

我的应用中集成cas单点登录,但是这个单点登录的服务器地址不确定

于是在配置文件中可以这么写

Springboot使用docker-compose实现动态配置过程_第1张图片

这里cas.server.url中的值从系统的环境变量CAS_SERVER中获取,如果系统中环境变量没有获取到,那么使用地址https://sophon15:8393的地址;

在docker-compose中的配置

Springboot使用docker-compose实现动态配置过程_第2张图片

这样就可以了;

顺带说一下docker-compose 中如何配置系统的host;这里的sophon15就是host地址

在docker-compose的extra_hosts属性中配置就可以了

如图所示

Springboot使用docker-compose实现动态配置过程_第3张图片

总结

yml总可以通过${Envirment_variable}的方式读取系统环境变量中的值;然后通过在docker-compose文件中配置好对应的环境变量值,这样应用在读取的时候就直接读到配置的值;而不用系统在打包的时候就得确定某些配置的值;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(Springboot使用docker-compose实现动态配置过程)