Kur*_*eek 2 pip docker dockerfile
我有一个带有以下内容的刮刀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"]
Run Code Online (Sandbox Code Playgroud)
刮板的代码位于 中/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 requirements.txt?,似乎与我的情况有关。每次我修改代码时,我都会使 Docker 构建缓存失效,即使requirements.txt它没有改变。所以为了避免pip install每次都重新运行s,建议在单独的步骤中COPY执行requirements.txt和RUN pip install -r requirements.txt。
| 归档时间: |
|
| 查看次数: |
2848 次 |
| 最近记录: |