docker cache not working

时间:2017-10-01 11:01:08

标签: docker docker-compose

我有一个带有以下dockerfile的简单docker镜像:

FROM python:2.7-onbuild

RUN python -m nltk.downloader 'punkt'

每当构建此映像时,它都会从nltk下载包。我该如何缓存它?

2 个答案:

答案 0 :(得分:1)

这是预期的。我看到两个选择:

  • 使用缓存的NLTK数据(无论位于何处)从主机安装卷
  • 创建一个具有NLTK和预加载数据的基本图像(而不是python:2.7-onbuild)并将其用于您的图像。尝试类似this one之类的东西。

答案 1 :(得分:0)

线索是FROM行中的“ onbuild”:程序包正在执行额外的指令,其中可能包括以下内容:

ONBUILD ADD . /app/src
ONBUILD RUN /usr/local/bin/python-build --dir /app/src

导致当前目录中的所有文件,特别是包括您已更改的文件-例如您的Dockerfile,除非您已使用.dockerignore排除了该文件-将其拉入映像,然后构建。

不幸的是,Docker无法以有意义的方式显示导致高速缓存未命中的原因,但是散列没有“附近”的概念。