Python repo中的Docker映像,使用缓存

Python repo中的Docker映像,使用缓存,python,docker,azure-pipelines,Python,Docker,Azure Pipelines,我使用诗歌构建了一个简单的python包。我有一个存储库,我的测试在Docker容器中运行,我在同一个repo中发布了Docker映像。我有一个Azure管道,当我提交时,我使用缓存来构建Docker映像。我有以下问题,在映像中我必须构建我的python包,因此如果pyproject发生了更改,例如,当我添加一个新库时,映像将执行 COPY poetry.lock pyproject.toml ./ RUN poetry install --no-interaction --no-ansi

我使用诗歌构建了一个简单的python包。我有一个存储库,我的测试在Docker容器中运行,我在同一个repo中发布了Docker映像。我有一个Azure管道,当我提交时,我使用缓存来构建Docker映像。我有以下问题,在映像中我必须构建我的python包,因此如果pyproject发生了更改,例如,当我添加一个新库时,映像将执行

COPY poetry.lock pyproject.toml ./

RUN poetry install --no-interaction --no-ansi

有没有更有效的方法来使用缓存?在这个意义上,如果我添加或删除一个库,那么只构建/删除新库和所有依赖它的库


我构建映像的方式中的另一个问题是,如果我的pyproject因为包的新版本而更改,则将执行安装。

似乎不可能仅从缓存中构建/删除新库。因为默认情况下,如果文件的内容来自“添加”和“复制”指令,则缓存的图像将无效。docker将按照dockerfile中的顺序运行所有指令以生成新图像


查看中的“利用构建缓存”部分,了解docker如何提取缓存映像并确定是否创建新映像的更多信息。

我已将依赖项的安装与我自己的软件包的安装分开Hi@Andrex此案例进展如何,下面的回答对您有帮助吗?