【开发心得】为什么docker部署不推荐war包?

这个问题的答案其实也很简单:因为配置文件容易出错。

场景介绍

有这样一个场景,

由于是通过pipeline部署的项目,UAT和PROD环境的部署镜像是相同的,是一个tomcat的war包,xml等配置文件都打包在镜像里。造成的后果是,由于xml只能有一个配置,所以当时里面写的是uat配置(比如路径、外部接口等配置),那么当部署到uat环境的时候,此配置是不需要修改,可以完美运行。

但是到了生产环境就有麻烦了,需要人为的就替换镜像中的xml文件(无法在docker中vi编辑文件),把这些文件改为符合生产配置。

问题产生了,当部署新版本的时候,由于xml文件中新增了一个节点配置,在uat中没有问题,到了生产的时候,由于人为疏忽,并没有替换这个文件,造成新的节点配置没有了!

解决方案

方案有两个:

A:临时措施,在uat中,也人为的去替换一下配置文件,看上去有点傻,但是为了避免两个环境的不同,造成上述的问题,值得了。

B:长治久安,要求研发使用jar包部署,把配置文件独立出来,这样就避免上述问题,也更加合理。(强力推荐,但需要研发修改代码!)

总结

一个小问题,引出了上述这篇文章。从人生算法而言,当你碰到一个问题的时候,如果不及时解决,那么提高自己就只会落在纸面上了。

你可能感兴趣的:(开发设计,运维)