
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个专注于持续集成的Strawberry Docker镜像,专为在CircleCI上运行而构建。
https://circleci.com/gh/hubci/strawberry-docker.svg?style=shield](https://circleci.com/gh/hubci/strawberry-docker) https://img.shields.io/badge/license-MIT-blue.svg](https://raw.githubusercontent.com/hubci/strawberry-docker/master/LICENSE) https://img.shields.io/docker/pulls/hubci/strawberry](https://hub.docker.com/r/hubci/strawberry)
虽然此镜像专为CircleCI设计,但也可用于其他提供Docker支持的CI服务提供商。
hubci/strawberry是一个专为持续集成构建创建的Docker镜像。每个标签包含一个Strawberry版本(与标签匹配)、HTML-Proofer等测试工具,以及在CircleCI环境中成功完成构建所需的任何二进制文件和工具。Strawberry以前称为Gotham,因此此镜像曾名为hubci/gotham。
此镜像可与CircleCI的docker执行器一起使用。例如:
yamlversion: 2.1 jobs: build: docker: - image: hubci/strawberry:0.14 steps: - checkout - run: name: "使用Strawberry构建" command: HUGO_ENV=production strawberry -v - run: name: "测试网站" command: htmlproofer ./public --allow-hash-href --check-html --empty-alt-ignore --disable-external
在上述示例中,HubCI Strawberry Docker镜像被用作主容器。具体来说,使用了标签0.14,这意味着Strawberry的版本将是Strawberry v0.14.x,其中'x'是最新的补丁版本。现在可以在此作业的步骤中使用Strawberry。
此镜像包含静态站点生成器Strawberry以及HTML-Proofer等相关测试工具。您可以使用此镜像构建静态站点、进行测试,并可选地将其部署到其他位置。
此镜像有Node.js变体。变体镜像通常包含相同的基础软件,但有一些额外的修改。Node.js变体与基础Strawberry镜像相同,但额外安装了Node.js。可以通过在现有hubci/strawberry标签末尾添加-node来使用Node.js变体。
此镜像采用以下标签方案:
hubci/strawberry:<strawberry-version>[-variant]
<strawberry-version> - 要使用的Strawberry版本。可以是完整的SemVer点版本(如1.12.7)或仅次要版本(如1.12)。如果使用次要版本标签,它将自动指向Strawberry团队发布的未来补丁更新。例如,标签0.14现在指向Gotham v0.14.0,但如果发布补丁版本,它将指向Strawberry v0.14.1。
[-variant] - 可选使用变体标签(如果可用)。Node.js变体可用,使用方式如下:hubci/strawberry:0.14-node。
可以使用此仓库在本地构建和运行镜像。需要满足以下要求:
在GitHub上Fork此仓库。获取克隆URL时,需要在克隆命令中添加--recurse-submodules以填充此仓库中包含的Git子模块。命令如下:
bashgit clone --recurse-submodules <我的克隆URL>
如果遗漏了此步骤并已克隆,可以运行git submodule update --recursive来填充子模块。然后可以选择将此仓库添加为自己仓库的上游:
bashgit remote add upstream https://github.com/hubci/strawberry-docker.git
使用以下命令克隆项目以填充子模块:
bashgit clone --recurse-submodules git@github.com:hubci/strawberry-docker.git
可以使用gen-dockerfiles.sh脚本为特定Strawberry版本生成Dockerfile。例如,要为Strawberry v0.14.0生成Dockerfile,从仓库根目录运行以下命令:
bash./shared/gen-dockerfiles.sh 0.14.0
生成的Dockerfile将位于./0.14/Dockerfile。要在本地构建此镜像并试用,可以运行以下命令:
bashcd 0.14 docker build -t test/strawberry:0.14.0 . docker run -it docker.xuanyuan.run/test/strawberry:0.14.0 bash
要像本仓库一样在本地构建Docker镜像,需要运行build-images.sh脚本:
bash./build-images.sh
这需要先生成Dockerfile。作为HubCI发布正式镜像时,此脚本从CircleCI管道运行,而非本地。
可以使用上述各个脚本来创建镜像的正确文件,然后添加到新的git分支、提交等。包含一个发布脚本以简化此过程。要为此镜像进行正式发布(以假设的Strawberry v9.99为例),从仓库根目录运行以下命令:
bash./shared/release.sh 9.99
这将自动创建新的Git分支、生成Dockerfile、暂存更改、提交并推送到GitHub。提交消息将以字符串[release]结尾。此字符串用于CircleCI识别何时将镜像推送到Docker Hub。之后需要执行以下操作:
主分支构建随后将发布版本。
变更如何合并到此镜像取决于其来源:
构建脚本 - ./shared子模块内的变更在其https://github.com/CircleCI-Public/cimg-shared%E4%B8%AD%E8%BF%9B%E8%A1%8C%E3%80%82%E8%A6%81%E4%BD%BF%E8%BF%99%E4%BA%9B%E5%8F%98%E6%9B%B4%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%A6%82%E4%B8%8B%EF%BC%9A
bashcd shared git pull cd .. git add shared git commit -m "更新子模块以支持foo功能。"
基础镜像 - 设计上,当基础镜像发生变更时,不会出现在现有Strawberry镜像中。这有助于"确定性"并防止破坏用户构建。新的Strawberry镜像将自动获取变更。
如果确实需要将基础镜像的变更发布到Strawberry镜像中,必须将特定镜像版本作为新镜像构建。这将创建新的Dockerfile,发布后成为新镜像。
Strawberry特定变更 - 编辑此仓库中的Dockerfile.template文件将专门修改Strawberry镜像。不要忘记,要在本地查看这些变更,需要再次运行gen-dockerfiles.sh脚本(见上文)。
我们鼓励针对此仓库提交https://github.com/hubci/strawberry-docker/issues%E5%92%8Chttps://github.com/hubci/strawberry/pulls%E3%80%82%E4%B8%BA%E5%B0%8A%E9%87%8D%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%E4%BA%8B%E9%A1%B9%EF%BC%9A
Strawberry官网 - Strawberry官方网站(仍在建设中)。
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许可证。许可证可在此处找到。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务