加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

docker build使用来自注册表的先前构建缓存

发布时间:2020-12-16 03:38:21 所属栏目:安全 来源:网络整理
导读:我正在配置一个竹子构建计划来构建docker图像.使用AWS ECS作为注册表.建设计划是这样的; 拉最新的标签 docker pull xxx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest 使用最新标记构建图像 docker build -t myimage:latest . 标记图像(ECS必需) docker t

我正在配置一个竹子构建计划来构建docker图像.使用AWS ECS作为注册表.建设计划是这样的;

>拉最新的标签

docker pull xxx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest

>使用最新标记构建图像

docker build -t myimage:latest .

>标记图像(ECS必需)

docker tag -f myimage:latest xxx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest

>将图像推送到注册表

docker push xx.dkr.ecr.eu-west-1.amazonaws.com/myimage:latest

因为构建任务每次都在不同的新构建引擎/服务器上运行,所以它没有本地缓存??.

当我不在Dockerfile上更改任何内容并再次执行它(在另一台服务器上)时,我希望docker使用本地缓存(来自docker pull)并且不再执行每一行.但它每次都试图建立图像.我还期待当我在文件底部更改某些内容时,它将使用缓存并仅执行最新行,但我不确定这一点.

我是否知道错误或对方法有任何意见?

最佳答案
你在考虑使用squid proxy吗?

编辑:万一你不想去上面的官方网站,这里是快速设置squid代理(基于debian)

apt-get install squid-deb-proxy

然后通过打开更改squid配置以创建更大的空间

/etc/squid/squid.conf

并用cache_dir ufs / var / spool /替换#cache_dir ufs / var / spool / squid
squid 10000 16 256
然后你去,一个10.000 MB的缓存空间

然后在dockerfile中指向代理地址,
这是一个带有squid代理的dockerfile的例子

基于yum和apt-get的发行版:

apt-get based distro

`FROM debian
RUN apt-get update -y && apt-get install net-tools
RUN echo "Acquire::http::Proxy "http://$( 
route -n | awk '/^0.0.0.0/ {print $2}' 
):8000";"  > /etc/apt/apt.conf.d/30proxy
RUN echo "Acquire::http::Proxy::ppa.launchpad.net DIRECT;" >> 
/etc/apt/apt.conf.d/30proxy
CMD ["/bin/bash"]`

yum based distro

`FROM centos:centos7
RUN yum update -y && yum install -y net-tools
RUN echo "proxy=http://$(route -n | 
awk '/^0.0.0.0/ {print $2}'):3128" >> /etc/yum.conf
RUN sed -i 's/^mirrorlist/#mirrorlist/' 
/etc/yum.repos.d/CentOS-Base.repo
RUN sed -i 's/^#baseurl/baseurl/' 
/etc/yum.repos.d/CentOS-Base.repo
RUN rm -f /etc/yum/pluginconf.d/fastestmirror.conf
RUN yum update -y
CMD ["/bin/bash"]`

假设您在aws注册表中安装squid代理,只有第一个构建将从Internet获取数据,其余(另一个服务器)构建应该来自缓存的squid代理. .

这种技术基于书籍泊坞机在实践技术57中使用tittle设置包缓存以便更快地构建

我不认为没有任何第三方软件的docker中有缓存功能..也许有,我只是不知道它. .我不确定,
如果我错了,请纠正我. .

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读