使用springcloud+docker部署:jar包(bug修复或配置文件更改)更新 快速完成docker容器jar包替换

项目场景:

项目中使用springcloud+springboot架构,在项目测试或者部署时,使用docker容器化部署项目。如果遇到需要更新代码或者修改配置文件内容时(本人之前未接触过微服务的部署工作,如果有更好的方案欢迎随时交流)


问题描述:

使用docker部署的每个服务镜像约有500M左右,如果遇到需要迭代更新代码或者修改配置文件,由于每次代码的改动量很小(增量发布),没有必要每次都重新生成一个docker镜像,然后再传到服务器,然后再去run新生成的镜像,这个过程是很费时间的,也是没什么技术含量的(笔者最开始是这么操作的)。


解决方案:

前提:因为每次更新的代码量不多或者很少(文件或者多个文件的改动)。

改动量极少(修改配置文件信息或者单个文件):
1.进入容器:使用 docker exec -it 容器名称 /bin/sh 或者docker exec -it 容器名称 /bin/bash
2.找到发布的jar包位置:find / -name xxx.jar
3.进入到jar包所在目录:cd
4.使用jar命令搜索需要改动文件在jar包里的位置:jar tvf xxx.jar | grep application.yml
5.使用jar命令解压需要修改的文件:jar xvf xxx.jar application.yml
6.使用vim命令对需要修改的文件做修改:
7.修改好后重新返回到xxx.jar的目录位置,然后使用jar命令将修改完成的文件压缩到xxx.jar中:jar uvf BOOT-INF/classes/application.yml xxx.jar
8.重新启动容器:docker restart 容器名称
使用springcloud+docker部署:jar包(bug修复或配置文件更改)更新 快速完成docker容器jar包替换

如果修改文件过多或者忘记哪些文件改动了,可以使用docker cp 命令将jar(注意jar名称要和愿名称一致)复制到容器中,重新启动容器即可完成快速更新。