我正在尝试在AWS CodeBuild的Docker构建中从CodeArtifact进行pip安装。
这篇文章没有完全解决我的问题:https://docs.aws.amazon.com/codeartifact/latest/ug/using-python-packages-in-codebuild.html
AWS CodeArtifact的登录是在prebuild中完成的,在Docker上下文之外。
但是我的pip install
在我的Dockerfile内部(我们从私有pypi注册表中提取)。
我该如何做到这一点,而不会像设置环境变量为从prebuild运行登录命令后读取~/.config/pip.conf/
导出的密码这样糟糕?
PIP_INDEX_URL
的值发生变化,我相信缓存会从第一次引用PIP_INDEX_URL
的那一行开始失效。为了解决这个问题,您可以在一个 单独的Dockerfile
中创建某种构建器映像,并将该映像推送到映像仓库中。然后,在您最终的映像的Dockerfile
中使用FROM myrepo/mybuilder as builder
或COPY --from=myrepo/mybuilder /thing.py /app/thing.py
引用 该 映像。这样,您只需要在requirements.txt
发生更改时手动重新创建构建器映像,而不是每次PIP_INDEX_URL
更改时都重新创建。 - Phistrom