CircleCI提供的`cimg/python`是专为持续集成构建设计的Docker镜像,包含完整Python版本(通过pyenv),预装pip、pipenv和poetry,适用于CircleCI环境,旨在取代旧版`circleci/python`镜像。
收藏数: 25
下载次数: 324630478
类型:
cimg/python一个专注于持续集成的Python Docker镜像,专为在CircleCI上运行而构建。
或仅次要版本(如3.8)。如果使用次要版本标签,它将自动指向Python项目发布的未来补丁更新。例如,标签3.8现在指向Python v3.8.5,但当下一个版本发布时,它将指向Python v3.8.6。
[-variant] - 如果可用,可以选择使用变体标签。例如,可以像这样使用Node.js变体:cimg/python:3.7-node。
可以使用此仓库在本地构建和运行镜像。这有以下要求:
在GitHub上fork此仓库。获取克隆URL时,您需要在克隆命令中添加--recurse-submodules以填充此仓库中包含的Git子模块。它看起来像这样:
bashgit clone --recurse-submodules <我的克隆URL>
如果您错过了此步骤并已克隆,可以运行git submodule update --recursive来填充子模块。然后您可以选择将此仓库添加为自己仓库的上游:
bashgit remote add upstream [***]
使用以下命令克隆项目以填充子模块:
bashgit clone --recurse-submodules ***:CircleCI-Public/cimg-python.git
可以使用gen-dockerfiles.sh脚本为特定Python版本生成Dockerfiles。例如,要为Python v3.7.7生成Dockerfile,您可以从仓库根目录运行以下命令:
bash./shared/gen-dockerfiles.sh 3.7.7
生成的Dockerfile将位于./3.7/Dockefile。要在本地构建此镜像并试用,您可以运行以下命令:
bashcd 3.7 docker build -t test/python:3.7.7 . docker run -it test/python:3.7.7 bash
要像此仓库一样在本地构建Docker镜像,您需要运行build-images.sh脚本:
bash./build-images.sh
这需要在首先生成Dockerfiles之后运行。发布CircleCI的正式镜像时,此脚本是从CircleCI管道运行的,而不是在本地运行。
确保版本化Dockerfiles和build-images.sh的所有更改都已还原,只留下Dockerfile.template作为修改后的文件。在测试上述部分时,这些文件会被修改。特定版本将在镜像发布时包含在内。
各个脚本(如上所述)可用于为镜像创建正确的文件,然后添加到新的git分支、提交等。包含一个发布脚本以使此过程更容易。要为此镜像进行正确的发布,让我们使用假的Python版本v99.9.9,您可以从仓库根目录运行以下命令:
bash./shared/release.sh 99.9.9
这将自动创建一个新的Git分支,生成Dockerfile(s),暂存更改,提交它们,并将它们推送到GitHub。提交消息将以字符串[release]结尾。CircleCI使用此字符串来知道何时将镜像推送到Docker Hub。之后需要做的就是:
然后主分支构建将发布版本。
更改如何合并到此镜像取决于它们的来源。
构建脚本 - ./shared子模块中的更改在其自己的仓库中发生。要使这些更改影响此镜像,需要更新子模块。通常像这样:
bashcd shared git pull cd .. git add shared git commit -m "更新子模块以修复foo。"
父镜像 - 按照设计,当父镜像发生更改时,它们不会出现在现有Python镜像中。这有助于"确定性"并防止破坏客户构建。新的Python镜像将自动获取更改。
如果您确实想将父镜像的更改发布到Python镜像中,则必须像构建新镜像一样构建特定的镜像版本。这将创建一个新的Dockerfile,一旦发布,就是一个新的镜像。
Python特定更改 - 编辑此仓库中的Dockerfile.template文件是专门修改Python镜像的方法。不要忘记,要在本地查看任何这些更改,需要再次运行gen-dockerfiles.sh脚本(见上文)。
我们鼓励对此仓库提出问题和拉取请求,但是,为了珍惜您的时间,请注意以下几点:
CircleCI文档 - 官方CircleCI文档网站。
CircleCI配置参考 - 来自CircleCI文档,配置参考页面是我们最有用的页面之一。它将列出.circleci/config.yml中支持的所有键和值。
Docker文档 - 对于简单项目,这不是必需的,但如果您想深入学习Docker,这是一个很好的资源。
此仓库根据MIT许可证授权。许可证可以在此处找到。
以下是 cimg/python 相关的常用 Docker 镜像,适用于 Web 开发、数据科学、机器学习 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务