本文详细介绍了Docker如何完成Springboot项目的动态传输。原文根据示例代码非常详细,对大家的学习培训或者工作都有一定的参考价值。有必要的朋友陪我去了解一下。
情况
最近有做Docker的朋友问,要不要根据docker-compose.yml动态的把参数转移到微服务架构,而不是每次都要硬编码项目配置文档,然后建立一个服务项目镜像系统。最后,在发布软件包之后,需要采取一些步骤来升级配置。有没有可能按照docker-compose.yml把一些配置项立刻放到系统变量中,然后springboot项目就可以自动从系统变量中获取主要参数?
情景
现在假设有一个Springboot项目,其中有一个数据库配置项,但是有不同的数据库接口测试(DEV\SIT\UAT)和几个数据库IP。如果想使用同一个Springboot项目镜像系统,可以随时随地更改数据库配置。简单来说,你的Springboot使用的数据库配置应该是从外界传过来的,而不是硬编码的。
Springboot应用程序中有一个数据库配置如下:
spring.datasource.url=jdbc:mysql://192.168.0.11:3306/db?useUnicode=true&characterEncoding=utf8 #配置数据库登录名 spring.datasource.username=sa #配置数据库登陆密码 spring.datasource.password=sa解决方法
使用SpEL关系,可以从系统变量中动态获得数据库配置。
接下来,我们用Springboot配置文档中的spEL表达式更改数据库配置。
#配置数据库连接 spring.datasource.url=jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useUnicode=true&characterEncoding=utf8 #配置数据库登录名 spring.datasource.username=${DB_USER} #配置数据库登陆密码 spring.datasource.password=${DB_PASSWORD}在docker-compose.yml中配置主要的数据库参数
version:'3' services: web: restart:always depends_on: -db image:springboot-app-image build:. ports: -8080:8080 environment: -DB_HOST=192.168.0.11 -DB_PORT=3306 -DB_USER=root -DB_PASSWORD=123456 -DB_NAME=db networks: -credit-facility-net deploy: mode:replicated replicas:3 restart_policy: condition:on-failure delay:5s max_attempts:3 update_config: parallelism:1 delay:10s这样,每个人的Springboot应用程序都可以在启动vesselservice项目时动态获取数据库配置。
到目前为止,这篇关于Docker如何传递Springboot项目的动态参数的文章已经在这里详细介绍过了。有关DockerSpringboot动态参数的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)