RUN pip install --upgrade pip
这个方法一直运行得很好,但最近镜像构建失败了,因为我们使用的是 Python 3.6.1 和最新版本的 pip(21.1),而最新版本的 pip 需要 Python >= 3.6.2,否则会出现 "ImportError: cannot import name NoReturn" 错误,详见 https://github.com/psf/black/issues/1666
除了升级 Python 版本以解决此问题外,我想知道在 Dockerfile 上下文中是否真的需要运行此命令来升级最新版本,因为这样做将无法获得可重复的镜像,由于 pip 版本将继续变化,这与 Docker 可重复环境的概念相违背。
那么,我们应该指定确切的 pip 版本以保持可重复的构建,即使这意味着某些时候它将过时?或者是否有其他选项可以确保当发布新的 pip 版本时,我们的镜像仍然能够正常工作?