首页 > 其他分享 >DockerFile 构建缓存 Buildkit

DockerFile 构建缓存 Buildkit

时间:2023-08-07 10:25:36浏览次数:36  
标签:缓存 force centos -- maven Buildkit docker DockerFile

缓存

  • Dockerfile 构建缓存功能从 Docker 17.05 版本开始引入
  • 可以加速构建 直接服用缓存 构建我们看到 from cache 就是来自缓存
  • 缓存是一个命令为单位 如果想服用缓存需要考虑

查看缓存大小

清除缓存

docker volume prune  --all --force
docker image prune  --all --force
docker network prune  --all --force
docker builder prune  --all --force

truncate -s 0 <logfile>
docker system prune --volumes --force  #  删除停止的容器、未使用的网络、悬空镜像和挂载卷

Docker Buildkit
  • Docker v18.09 版本起已经集成了该组件
  • 魔法注释
  • 开启 特性
  • 临时生效
# 增加DOCKER_BUILDKIT=1后的命令
DOCKER_BUILDKIT=1 docker build -f Dockerfile -t test_name .
  • 永久生效 /etc/docker/daemon.json
{
  "features": {
    "buildkit" : true
  }
}

临时访问 secrets 、 ssh-agent 、 socket

# syntax=docker/dockerfile:experimental
FROM centos AS centos
FROM alpine
RUN --mount=type=bind,from=centos,source=/,target=/centos ls /centos > /root/centos.txt

maven、npm 等有构建缓存,且希望缓存复用的场景 过程中读写的文件进行共享

# syntax=harbor.goodcol.com/dockerhub_proxy/docker/dockerfile:1.4
FROM harbor.goodcol.com/dockerhub_proxy/library/maven:3.8.6-openjdk-8-slim
WORKDIR /workspace/

RUN --mount=type=cache,target=/maven-repo,id=maven-repo echo shanhy > /maven-repo2/shanhy1.log && ls /maven-repo2/* > filelist.log

标签:缓存,force,centos,--,maven,Buildkit,docker,DockerFile
From: https://www.cnblogs.com/guanchaoguo/p/17610697.html

相关文章

  • 解决缓存与数据库的数据一致性问题的终极指南
    摘要:缓存是提高应用性能的有效手段,然而,缓存与数据库之间的数据一致性问题常常困扰着开发者。本文将探讨缓存与数据库的数据一致性问题的原因,以及如何通过不同的解决方案来确保数据的一致性,从而构建稳健高效的缓存系统。1.缓存与数据库的数据一致性问题缓存是将热门数据存储在高速......
  • Java实现本地缓存的几种方式
    一、概况引入缓存,主要用于实现系统的高性能,高并发。将数据库查询出来的数据放入缓存服务中,因为缓存是存储在内存中的,内存的读写性能远超磁盘的读写性能,所以访问的速度非常快。但是电脑重启后,内存中的数据会全部清除,而磁盘中的数据虽然读写性能很差,但是数据不会丢失。目的主要为了重......
  • windows应用程序icon缓存、查看图标、icon制作方法
    windows程序图标缓存在vs中替换c++程序的图标后,需要重新编译,但是很多情况下都不会刷新,还是看到老的图标,只能重启电脑才能看到新的图标。通过ChatGPT得到相关的回答如下:如果在Windows上更换了可执行文件(.exe)的图标,但是在图标文件已经更改的情况下仍然显示旧的图标,可能是因......
  • ceph高速缓存池
    一.缓存池运维1.1自定义硬盘类型cephosdcrushclasslscephosdcrushclasscreatessdcephosdcrushclasscreatesatacephosdcrushrm-device-classosd.3cephosdcrushset-device-classssdosd.31.2自定义角色管理不同类型硬盘cephosdcrushrulel......
  • 使用缓存优化网站性能:缓解数据库压力,提高访问速度
    使用缓存是一种有效的优化网站性能的方式,特别是对于那些访问集中在少部分数据上的场景,可以显著减轻数据库的压力,提高网站的响应速度和性能。缓存的主要原理是将常用的数据存储在内存中,以避免频繁地从数据库读取数据。由于内存的读写速度远远快于磁盘,通过缓存可以大幅提高数据访问......
  • redis 如何解决缓存雪崩、击穿、穿透难题
    引言redis作为一门热门的缓存技术,引入了缓存层,就会有缓存异常的三个问题,分别是缓存击穿、缓存穿透、缓存雪崩。我们用本篇文章来讲解下如何解决!缓存击穿缓存击穿:指的是缓存中的某个热点数据过期了,但是此时大量的并发请求访问这个key的值,此时因为缓存过期无法从缓存中获取,直......
  • 前端学习笔记202306学习笔记第四十七天-协商缓存2
      ......
  • 前端学习笔记202306学习笔记第四十七天-vue-强制缓存1
        ......
  • 解决Redis缓存雪崩问题的有效方法
    Redis缓存雪崩是指在某个时间点,缓存中大量的数据同时过期失效,导致大量请求直接访问后端数据库,造成数据库压力激增,甚至导致系统崩溃。本文将介绍几种有效的方法,帮助您解决Redis缓存雪崩问题,提高系统的稳定性和可靠性。合理设置缓存的过期时间:缓存的过期时间是导致缓存雪崩的主要原......
  • 解决Redis缓存击穿问题的技术方法
    Redis缓存是常用的性能优化手段,但在高并发场景下,可能出现缓存击穿问题,导致大量请求直接穿透缓存,直接访问后端数据库,从而造成数据库负载激增。本文将介绍几种常见的技术方法,帮助您解决Redis缓存击穿问题,提高系统的性能和稳定性。使用互斥锁(MutexLock)缓存击穿通常发生在热点数据失......