Azure Pip身份验证任务在每次管道运行时为Pip_INDEX_URL/Pip_EXTRA_INDEX_URL创建新值,防止docker重用缓存层

Azure Pip身份验证任务在每次管道运行时为Pip_INDEX_URL/Pip_EXTRA_INDEX_URL创建新值,防止docker重用缓存层,azure,docker,azure-devops,pip,dockerfile,Azure,Docker,Azure Devops,Pip,Dockerfile,我正在使用azure devops classic build pipeline的任务创建到私有包源的连接。此任务创建环境变量PIP\u INDEX\u URL和PIP\u EXTRA\u INDEX\u URL 我将上述值作为参数传递到dockerfile中,以配置包源凭据 ARG EXTRA_INDEX_URL ENV ENV_EXTRA_INDEX_URL ${EXTRA_INDEX_URL} RUN pip config set global.extra-index-url "$ENV:

我正在使用azure devops classic build pipeline的任务创建到私有包源的连接。此任务创建环境变量
PIP\u INDEX\u URL
PIP\u EXTRA\u INDEX\u URL

我将上述值作为参数传递到dockerfile中,以配置包源凭据

ARG EXTRA_INDEX_URL
ENV ENV_EXTRA_INDEX_URL ${EXTRA_INDEX_URL}
RUN pip config set global.extra-index-url "$ENV:ENV_EXTRA_INDEX_URL"
RUN pip install -r requirements.txt
Azure devops Pip authenticate任务在每次管道运行时为Pip_INDEX_URL/Pip_EXTRA_INDEX_URL创建新值,防止docker重用缓存层。在使用pip身份验证任务派生凭据时,是否有任何方法允许docker映像层重用

Azure devops Pip身份验证任务为 每次管道运行时,PIP_INDEX_URL/PIP_EXTRA_INDEX_URL 阻止docker重用缓存层。有什么办法允许吗 使用pip导出凭据时docker映像层的重复使用 验证任务

对不起,恐怕答案是否定的。当
ARG
的值每次更改时,缓存层不会被重用,这是docker的预期行为。由于每次触发管道时,
pip authenticate
任务总是创建新的临时凭证,因此我们无法避免创建新的层

建议您将上面的脚本放在Dockerfile中,放在需要使用这些python包的位置之前,而不是放在最上面。当脚本上面的命令可以重用缓存层时,这可以节省一些时间。你可以检查一下