dockerfile增量发布背景:问题:解决方案:

背景:

项目中使用了k8s环境,每次更新都要打包成docker镜像推到harbor仓库。 之前每次都是全量发布,即在本地把要更新的文件都替换好,然后整个包重新打成镜像。

问题:

  1. 一个项目有时并不是只有一个人维护,本地不一定是最新的文件,存在漏更新的风险。
  2. 每次都要重新打包整个项目,速度比较慢。

解决方案:

  1. 先把服务器上最新版本的镜像拉取到本地,docker命令:docker pull 192.168.1.8/patrol-svr/patrol-svr:v1.01
  2. 以本地最新的镜像为基础,进行相应的更新与复制操作。

dockerfile文件内容如下:

FROM 192.168.1.8/patrol-svr/patrol-svr:v1.01

COPY module /usr/local/pipenet-docker-patrol/module

Add module1 /usr/local/pipenet-docker-patrol/

备注:

COPY 命令,将文件或文件夹复制到相应路径,并覆盖替换相应文件内容。
Add 命令, 将文件或文件夹增加到相应路径。

缺陷:

对于镜像中的内容,无法进行删除,如果需要删除镜像中的某个文件,则还是用全量发布的形式。