首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加快“apt-获取更新”,加快码头形象建设

加快“apt-获取更新”,加快码头形象建设
EN

Stack Overflow用户
提问于 2019-05-14 23:01:49
回答 4查看 6.9K关注 0票数 3

我想将curl添加到Docker映像中,并使用以下命令在Dockerfile中这样做:

代码语言:javascript
复制
RUN apt-get update
RUN apt-get install curl ca-certificates -y

我的问题是,初始更新需要很长时间才能运行(2分钟),所以在调试Dockerfile时,迭代速度很慢。特别是当我在RUN apt-get update之前进行更改时,这会使Docker的图像缓存失效。

是否有任何方法可以对apt-get update进行更有选择性的选择,因此它只更新到可以下载curl的地方?或者其他一些我可以用来加速码头建设的技术?

这是整个Dockerfile

代码语言:javascript
复制
FROM postgres:9.6.10
ADD data/tsvs.tar.gz /standard_data
COPY postgres/*.sql /docker-entrypoint-initdb.d/

RUN apt-get update
RUN apt-get install curl ca-certificates -y
RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get install postgis postgresql-9.6-postgis-scripts -y

我目前正在修改postgres/*.sql中的SQL文件,因此缓存失效。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-05-15 03:32:06

图像是按层组织的,每一层都取决于前面的层。层也是为了速度而缓存的。

再次运行构建时,请继续检查dockerfile中命令行的ckecksum是否发生了更改。如果没有,则会从缓存中提取该层。但是如果是这样的话,它就会重建后一层和所有连续的层。

在特定情况下,ADD命令在每次更改时生成一个新层,这将触发所有要重建的连续层。

在修复此问题之前移动安装。

您还应该将所有安装放在一行上,并在完成后清除apt缓存。

代码语言:javascript
复制
RUN apt-get install curl ca-certificates -y && \
  curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \
  apt-get install postgis postgresql-9.6-postgis-scripts -y && \
  rm -rf /var/cache/apt && \
  apt-get clean
票数 1
EN

Stack Overflow用户

发布于 2019-05-15 00:02:18

如果我将curl安装的内容移到我要更改的部件之前,缓存将更频繁地被击中。我的新文件是

代码语言:javascript
复制
FROM postgres:9.6.10
RUN apt-get update
RUN apt-get install curl ca-certificates -y
RUN curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get install postgis postgresql-9.6-postgis-scripts -y

ADD data/tsvs.tar.gz /standard_data
COPY postgres/*.sql /docker-entrypoint-initdb.d/
COPY postgres/subsetting.s* /docker-entrypoint-initdb.d/

感谢卡莱布·H.用他的评论来思考这个问题。

票数 0
EN

Stack Overflow用户

发布于 2021-04-14 03:37:51

这篇文章在reddit上建议,使用COPY sources.list /etc/apt/将本地apt sources.list复制到容器中可能有助于容器的apt update使用本地镜像,从而加快速度

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56139706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档