`
bravewu
  • 浏览: 48241 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

如何使用Bamboo来实现application.yml、mybatis mapper文件和docker-compse.yml的动态更新

阅读更多

最近在做一个保险项目。需求不算太复杂,主要是解决人员和保单信息的创建及更新。

  • 基本框架:springboot+mybatis+maven
  • 数据库:oracle
  • 应用服务器:websphere liberty
  • 代码管理工具:bitbucket
  • CI/CD工具:bamboo
  • docker镜像服务器: artifactory

这应该算是个微服务框架吧,但不够完整,没有设置配置服务器。

于是就需要利用bamboo做一些配置管理。

一开始所有的配置都是打进war包里,在开发阶段,这么做也没什么问题。进入测试阶段,因为数据库的用户名密码会不同,schema也可能会不同。客户提出要把appliaiton.yml及mapper文件中的数据库配置信息全部要进行动态设置。一开始我毫无思路,在客户的耐心引导和我自己的不懈努力下。最后终于找到一个解决方案。

第一步:把application.yml和application-dev/sit.yml合并成一个yml文件,在新的application.yml文件中将数据库的用户名替换为:${DB_USERNAME}。

第二步:把合并完的applicaiton.yml放在工程根目录下的一个发布目录里。避免被maven打进war里。

第三步:利用bamboo里构建containerize shell脚本,将application.yml拷贝到【liberty-server】/usr/servers/defaultServer

第四步:在bamboo部署阶段里为每一种环境配置不同的变量 如:db_username: testuser。

第五步:利用bamboo里部署的shell脚本动态生成docker-compose.xml,在server - environment里加入引入环境变量

DB_USERNAME: ${bamboo.db_username}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics