当前位置: 首页 > 面试题库 >

如何使用缓存快速重建dockerfile?

戚祺
2023-03-14
问题内容

我想优化我的Dockerfile。我希望将缓存文件保留在磁盘中。但是,我发现当我运行docker build .它时,总是尝试从网络获取每个文件。

我希望在构建期间共享我的缓存目录(例如/ var / cache / yum / x86_64 / 6)。但是,它仅适用于docker run -v ...

有什么建议吗?(在此示例中,仅安装了1 rpm,在实际情况下,我需要安装数百rpm)

我的Dockerfile草案

FROM centos:6.4
RUN yum update -y
RUN yum install -y openssh-server
RUN sed -i -e 's:keepcache=0:keepcache=1:' /etc/yum.conf
VOLUME ["/var/cache/yum/x86_64/6"] 
EXPOSE 22

在第二次,我想建立一个相似的图像

FROM centos:6.4
RUN yum update -y
RUN yum install -y openssh-server vim

我不想再次从internat获取openssh-server(速度很慢)。在我的真实情况下,它不是一个包,而是大约100个包。


问题答案:

作为对先前答案的更新,当前的docker
build
接受--build-arg传递环境变量的方式,例如http_proxy 不将其保存在生成​​的映像中。

例:

# get squid
docker run --name squid -d --restart=always \
  --publish 3128:3128 \
  --volume /var/spool/squid3 \
  sameersbn/squid:3.3.8-11

# optionally in another terminal run tail on logs
docker exec -it squid tail -f /var/log/squid3/access.log

# get squid ip to use in docker build
SQUID_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' squid)

# build your instance
docker build --build-arg http_proxy=http://$SQUID_IP:3128 .


 类似资料:
  • 这里的磁盘缓存功能是指使用缓存磁盘来存储租户常用的一些数据。例如,假设你通过gateway azure设置访问一个对象并下载下来进行缓存,那接下来的请求都会直接访问缓存磁盘上的对象,直至其过期失效。此功能允许Minio用户: 对象的读取速度性能最佳。 任何对象的首字节时间得到显著改善。 开始 1. 前期条件 安装Minio - Minio快速入门。 2. 运行Minio缓存 磁盘缓存可以通过修改M

  • 问题内容: 这是我的代码,但显示了进度。这段代码有什么错误吗?请提供一些想法来解决此问题,或者提供一些与此相关的链接。 问题答案: 更新的答案: 要关闭ProgressHUD:

  • 本文向大家介绍如何快速使用mysqlreplicate搭建MySQL主从,包括了如何快速使用mysqlreplicate搭建MySQL主从的使用技巧和注意事项,需要的朋友参考一下 简介 mysql-utilities工具集是一个集中了多种工具的合集,可以理解为是DBA的工具箱,本文介绍利用其中的mysqlreplicate工具来快速搭建MySQL主从环境。 HE1:192.168.1.248 sl

  • 高速缓存可以存储缩览图和元数据信息(其中包括无法存储在文件中的元数据,如标签和评级),以便在您查看缩览图或搜索文件时提高性能。但存储高速缓存会占用磁盘空间。在构建高速缓存时,您可以选择将其导出以便共享或存档,您也可以选择生成 100% 预览。您可以通过清除高速缓存来管理高速缓存,并通过设置首选项来控制其大小和位置。 有关共享高速缓存的更多信息,请参阅集中管理 Adobe Bridge 高速缓存。

  • 我有一个使用Spring缓存注释的Spring Boot应用程序。现在我想迁移到JSR-107(JCache)注释。 这是我的方法: 我希望我的新方法是这样的: 计算器输入类: @CacheKey注释指示spring将整个CalculatorInput对象存储为Key。我只想使用CalculatorInput类的属性id作为键。 我如何创建一个缓存键(就像我在Spring缓存注释中所做的那样),但

  • 笔者想通过jenkins实现一个简单的自动化部署,目前我的操作如下 在工程文件下面新建了dockerfile文件,通过多阶段构建来利用缓存提高构建速度 在jenkins构建时编写了脚本,主要操作就是删除上一次构建的容器和镜像文件,重写构建一个新的镜像和容器 但是有一个问题就是删除了上一次的镜像和容器docker的缓存是不是就是不在了,无法利用缓存来提高构建速度,如果我想利用dockerfile的缓