#独家
jenkins + dockerfile构建如何利用docker缓存提升构建速度?

2023-05-29 0 3,544

笔者想通过jenkins实现一个简单的自动化部署,目前我的操作如下

  1. 在工程文件下面新建了dockerfile文件,通过多阶段构建来利用缓存提高构建速度
  2. 在jenkins构建时编写了脚本,主要操作就是删除上一次构建的容器和镜像文件,重写构建一个新的镜像和容器

但是有一个问题就是删除了上一次的镜像和容器docker的缓存是不是就是不在了,无法利用缓存来提高构建速度,如果我想利用dockerfile的缓存提高构建速度,应该怎么去实现呢?
这是我的dockerfile文件,主要就是缓存了package.json减少install的时间

FROM node:14-alpine
WORKDIR /project
COPY package*.json /project/
RUN npm install
COPY . /project
RUN npm run build

FROM nginx
COPY --from=0 /project/dist /usr/share/nginx/City
COPY --from=0 /project/default.conf /etc/nginx/conf.d/City.conf

多阶段构建并不一定能提高构建速度,多阶段的目的更多的是为了降低最终打包的镜像大小。是不是利用了缓存,和阶段构建没什么关系,和Dockerfile的指令有关系。

镜像越小,推送镜像到镜像仓库的时候,速度越快 🙂

可以保留一个历史版本的镜像,缓存就还在,速度会快很多。

还可以尝试下面几个方法:

  1. 如果镜像中有安装第三方包,可以提前把这些所需要的包,打包成一个基础镜像。然后再构建app镜像的时候,依赖这个基础镜像。
  2. 减少镜像层数,尽量把多个命令写成一行,让它们作为一个镜像层。
  3. Dockerfile中,如果指令没有修改,下一次构建的时候会直接使用缓存的镜像层,修改了就会生成新的镜像层。还有就是如果第一行指令变了,后面所有的指令就不会再走缓存。 所以一般情况下固定不变的指令写在上面,会经常变的指令写在下面。
  4. 可以多尝试构建几次,观察一下每次构建的时候时间花在哪里,然后看情况优化。
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 jenkins + dockerfile构建如何利用docker缓存提升构建速度? https://www.jkxiazai.com/1756.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务