
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
</p> <h1>CircleCI便捷镜像 => Ruby</h1> <h3>一个专注于持续集成的Ruby Docker镜像,为在CircleCI上运行而构建</h3>
此镜像旨在替代旧版CircleCI Ruby镜像circleci/ruby。
cimg/ruby是由CircleCI创建的Docker镜像,专注于持续集成构建,设计用于在CircleCI环境中运行。每个标签包含完整的Ruby版本、gem命令、Bundler以及在CircleCI环境中成功运行构建所需的任何二进制文件和工具。
此镜像可与CircleCI docker执行器一起使用。例如:
yamljobs: build: docker: - image: cimg/ruby:2.7.2 steps: - checkout - run: ruby --version
在上述示例中,CircleCI Ruby Docker镜像被用作主容器。具体来说,使用了标签2.7.2,这意味着将使用Ruby v2.7.2版本。现在,您可以在此作业的步骤中使用Ruby。
此镜像包含Ruby编程语言,包括gem命令以及预安装的Bundler。
变体镜像通常包含相同的基础软件,但有一些额外的修改。
Node.js
Node.js变体与基础Ruby镜像相同,但额外安装了Node.js。可以通过在现有cimg/ruby标签末尾添加-node来使用Node.js变体。
yamljobs: build: docker: - image: cimg/ruby:2.7-node steps: - checkout - run: ruby --version - run: node --version
浏览器
浏览器变体与基础Ruby镜像相同,但通过apt预安装了Node.js、Java、Selenium和浏览器依赖项。可以通过在现有cimg/ruby标签末尾添加-browser来使用浏览器变体。浏览器变体旨在与https://circleci.com/developer/orbs/orb/circleci/browser-tools配合使用。您可以使用该orb在构建中安装特定版本的Google Chrome和/或Firefox。此镜像包含使用浏览器及其驱动程序所需的所有支持工具。
yamlorbs: browser-tools: circleci/browser-tools@1.1 jobs: build: docker: - image: cimg/ruby:2.7-browsers steps: - browser-tools/install-browser-tools - checkout - run: | ruby --version node --version java --version google-chrome --version
此镜像的标签方案如下:
cimg/ruby:<ruby-version>[-variant]
<ruby-version> - 要使用的Ruby版本。可以是完整的SemVer点版本(如3.2.0)或仅次要版本(如3.2)。如果使用次要版本标签,它将自动指向未来的补丁更新。例如,标签3.2现在指向Ruby v3.2.0,但当下一个版本发布时,它将指向Ruby v3.2.1。
[-variant] - 可选的变体标签(如果可用)。例如,可以这样使用Node.js变体:cimg/ruby:3.2.0-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-ruby.git
使用以下命令克隆项目,以填充子模块:
bashgit clone --recurse-submodules git@github.com:CircleCI-Public/cimg-ruby.git
可以使用gen-dockerfiles.sh脚本为特定Ruby版本生成Dockerfile。例如,要为Ruby v3.2.0生成Dockerfile,从仓库根目录运行以下命令:
bash./shared/gen-dockerfiles.sh 3.2.0
生成的Dockerfile将位于./3.2/Dockerfile。要在本地构建此镜像并试用,可以运行以下命令:
bashcd 3.2/ docker build -t test/ruby:3.2.0 . docker run -it docker.xuanyuan.run/test/ruby:3.2.0 bash
要像此仓库一样在本地构建Docker镜像,需要先运行上述生成Dockerfile的命令,然后运行build-images.sh脚本:
bash./build-images.sh
发布CircleCI的正式镜像时,此脚本从CircleCI流水线运行,而非本地。
上述各个脚本可用于创建镜像的正确文件,然后添加到新的git分支、提交等。包含一个发布脚本以简化此过程。要为此镜像进行正式发布,以假设的Ruby版本v9.99为例,从仓库根目录运行以下命令:
bash./shared/release.sh 9.99
这将自动创建新的Git分支、生成Dockerfile、暂存更改、提交并推送到GitHub。提交消息将以字符串[release]结尾。CircleCI使用此字符串来确定何时将镜像推送到Docker Hub。之后需要执行以下步骤:
主分支构建随后将发布版本。
变更如何合并到此镜像取决于其来源。
构建脚本 - ./shared子模块中的变更在其https://github.com/CircleCI-Public/cimg-shared中进行。要使这些变更影响此镜像,需要更新子模块。通常如下:
bashcd shared git pull cd .. git add shared git commit -m "更新子模块以支持foo。"
父镜像 - 按设计,当父镜像发生变更时,不会出现在现有Ruby镜像中。这有助于“确定性”并防止破坏客户构建。而新的Ruby镜像/版本将自动获取变更。
如果确实要将父镜像的变更发布到Ruby镜像中,必须将特定镜像版本作为新镜像构建。这将创建新的Dockerfile,发布后将成为新镜像。
Ruby特定变更 - 编辑此仓库中的Dockerfile.template文件可专门修改Ruby镜像。不要忘记,要在本地查看任何这些变更,需要再次运行gen-dockerfiles.sh脚本(见上文)。
我们鼓励为此仓库提交https://github.com/CircleCI-Public/cimg-ruby/issues和https://github.com/CircleCI-Public/cimg-ruby/pulls,但为了尊重您的时间,请注意以下几点:
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/ruby 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: