
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个专注于持续集成的Python Docker镜像,专为在CircleCI上运行而构建。
https://circleci.com/gh/CircleCI-Public/cimg-python.svg?style=shield](https://circleci.com/gh/CircleCI-Public/cimg-python) https://img.shields.io/badge/license-MIT-blue.svg](https://raw.githubusercontent.com/CircleCI-Public/cimg-python/master/LICENSE) https://img.shields.io/docker/pulls/cimg/python](https://hub.docker.com/r/cimg/python) https://img.shields.io/badge/community-CircleCI%20Discuss-343434.svg](https://discuss.circleci.com/c/ecosystem/circleci-images) https://img.shields.io/badge/github-README-brightgreen](https://github.com/CircleCI-Public/cimg-python)
此镜像旨在取代旧版CircleCI Python镜像circleci/python。
cimg/python是由CircleCI创建的Docker镜像,专为持续集成构建而设计。每个标签都通过pyenv包含完整的Python版本。预装了pip、pipenv和poetry,以及在CircleCI环境中成功完成构建所需的任何二进制文件和工具。
此镜像可与CircleCI docker执行器一起使用。例如:
yamljobs: build: docker: - image: cimg/python:3.8 steps: - checkout - run: python --version
在上面的示例中,CircleCI Python Docker镜像用作主容器。更具体地说,使用了标签3.8,这意味着Python的版本将是Python v3.8。现在可以在此作业的步骤中使用Python。
此镜像包含Python编程语言以及pip、pipenv和poetry。解释器通过pyenv提供,允许您在构建过程中更改Python版本。
变体镜像通常包含相同的基础软件,但有一些额外的修改。
Node.js
Node.js变体与Python镜像相同,但还安装了Node.js。可以通过在现有cimg/python标签末尾添加-node来使用Node.js变体。
yamljobs: build: docker: - image: cimg/python:3.7-node steps: - checkout - run: python --version - run: node --version
浏览器
浏览器变体与Python镜像相同,但通过apt预安装了Node.js、Java、Selenium和浏览器依赖项。可以通过在现有cimg/python标签末尾添加-browser来使用浏览器变体。浏览器变体旨在与https://circleci.com/developer/orbs/orb/circleci/browser-tools%E9%85%8D%E5%90%88%E4%BD%BF%E7%94%A8%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8orb%E5%9C%A8%E6%9E%84%E5%BB%BA%E4%B8%AD%E5%AE%89%E8%A3%85%E7%89%B9%E5%AE%9A%E7%89%88%E6%9C%AC%E7%9A%84Google Chrome和/或Firefox。该镜像包含使用浏览器及其驱动程序所需的所有支持工具。
yamlorbs: browser-tools: circleci/browser-tools@1.1 jobs: build: docker: - image: cimg/python:3.7-browsers steps: - browser-tools/install-browser-tools - checkout - run: | python --version node --version java --version google-chrome --version
此镜像具有以下标签方案:
cimg/python:<python-version>[-variant]
<python-version> - 要使用的Python版本。可以是完整的SemVer点版本(如3.8.1)或仅次要版本(如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 https://github.com/CircleCI-Public/cimg-python.git
使用以下命令克隆项目以填充子模块:
bashgit clone --recurse-submodules git@github.com: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 docker.xuanyuan.run/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子模块中的更改在其https://github.com/CircleCI-Public/cimg-shared%E4%B8%AD%E5%8F%91%E7%94%9F%E3%80%82%E8%A6%81%E4%BD%BF%E8%BF%99%E4%BA%9B%E6%9B%B4%E6%94%B9%E5%BD%B1%E5%93%8D%E6%AD%A4%E9%95%9C%E5%83%8F%EF%BC%8C%E9%9C%80%E8%A6%81%E6%9B%B4%E6%96%B0%E5%AD%90%E6%A8%A1%E5%9D%97%E3%80%82%E9%80%9A%E5%B8%B8%E5%83%8F%E8%BF%99%E6%A0%B7%EF%BC%9A
bashcd shared git pull cd .. git add shared git commit -m "更新子模块以修复foo。"
父镜像 - 按照设计,当父镜像发生更改时,它们不会出现在现有Python镜像中。这有助于"确定性"并防止破坏客户构建。新的Python镜像将自动获取更改。
如果您确实想将父镜像的更改发布到Python镜像中,则必须像构建新镜像一样构建特定的镜像版本。这将创建一个新的Dockerfile,一旦发布,就是一个新的镜像。
Python特定更改 - 编辑此仓库中的Dockerfile.template文件是专门修改Python镜像的方法。不要忘记,要在本地查看任何这些更改,需要再次运行gen-dockerfiles.sh脚本(见上文)。
我们鼓励对此仓库提出https://github.com/CircleCI-Public/cimg-python/issues%E5%92%8Chttps://github.com/CircleCI-Public/cimg-python/pulls%EF%BC%8C%E4%BD%86%E6%98%AF%EF%BC%8C%E4%B8%BA%E4%BA%86%E7%8F%8D%E6%83%9C%E6%82%A8%E7%9A%84%E6%97%B6%E9%97%B4%EF%BC%8C%E8%AF%B7%E6%B3%A8%E6%84%8F%E4%BB%A5%E4%B8%8B%E5%87%A0%E7%82%B9%EF%BC%9A
https://circleci.com/docs/ - 官方CircleCI文档网站。
https://circleci.com/docs/2.0/configuration-reference/#section=configuration - 来自CircleCI文档,配置参考页面是我们最有用的页面之一。它将列出.circleci/config.yml中支持的所有键和值。
https://docs.docker.com/ - 对于简单项目,这不是必需的,但如果您想深入学习Docker,这是一个很好的资源。
此仓库根据MIT许可证授权。许可证可以在此处找到。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 cimg/python 相关的常用 Docker 镜像,适用于 Web 开发、数据科学、机器学习 等不同场景: