【发布时间】:2019-05-14 23:01:49
【问题描述】:
我想将curl 添加到 Docker 映像中,并且我在 Dockerfile 中使用以下命令来执行此操作:
RUN apt-get update
RUN apt-get install curl ca-certificates -y
我的问题是初始更新需要很长时间才能运行(2 分钟),所以当我调试 Dockerfile 时,迭代速度很慢。特别是当我在RUN apt-get update 之前进行更改时,这会使 Docker 的图像缓存无效。
有什么方法可以让apt-get update 更有选择性,所以它只更新到足以索引下载curl 的位置?或者我可以使用其他一些技术来加快我的 Docker 构建速度?
这是整个 Dockerfile,
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 文件,因此缓存失效。
【问题讨论】:
-
你能给我们整个 Dockerfile 吗?可能有一些方法可以利用 Docker 缓存。