【发布时间】:2017-05-10 09:24:39
【问题描述】:
我有一个带有以下Dockerfile的刮刀:
# Adapted from trcook/docker-scrapy
FROM python:alpine
RUN apk --update add libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-dev
COPY . /scraper
RUN pip install -r /scraper/requirements.txt
WORKDIR /scraper/apkmirror_scraper
CMD ["scrapy", "crawl", "apkmirror"]
刮板代码在/scraper/apkmirror_scraper,需求在scraper/requirements.txt。我注意到每次我修改代码和构建镜像时,它都会重新运行pip install -r requirements.txt,而不是使用本地缓存。
如何防止这种情况并使其使用本地缓存?
(关于此的一个“理论”是,虽然/scraper/requirements.txt 本身没有改变,但/scraper 目录已经改变,这使得RUN 指令必须“重新运行”;在这种情况下它可能会有所帮助将requirements.txt 移动到不同的目录。但是,我无法从https://docs.docker.com/engine/reference/builder/#run 验证这个“理论”是否正确)。
【问题讨论】:
标签: docker pip dockerfile