一个专注于持续交付和部署的Docker镜像,专为在CircleCI上运行而构建
!CircleCI构建状态 !软件许可证 !Docker拉取量 !CircleCI社区 !仓库
cimg/deploy是由CircleCI创建的Docker镜像,专为持续交付和部署流水线设计。每个标签都是基于日期的快照,包含多种部署相关工具,如kubectl、terraform等。如果需要AWS CLI,请查看cimg/aws。GCP和Azure镜像即将推出。
此镜像可与CircleCI的docker执行器一起使用。例如:
yamljobs: build: docker: - image: cimg/deploy:2022.06.1 steps: - checkout - run: echo "执行部署操作"
在上述示例中,CircleCI Deploy Docker镜像用作主容器。具体使用了标签2022.06.1,表示这是2022年6月的第1个快照。现在可以在此作业中使用镜像中预安装的所有工具。
此镜像每月发布一次。每个月,我们会将主要工具更新到可用的新版本。
变体镜像通常包含相同的基础软件,但有一些额外的修改。
Node.js变体与Deploy镜像相同,但额外安装了Node.js。使用时,在现有cimg/deploy标签后追加-node即可。
yamljobs: build: docker: - image: cimg/deploy:2022.06.1-node steps: - checkout - run: node --version # 验证Node.js已安装
此镜像的标签方案如下:
cimg/deploy:YYYY.MM.I[-variant]
标签格式为YYYY.MM.I,其中YYYY是4位年份,MM是2位月份,I是该月的第n次发布。通常只有在需要为当月镜像打补丁时,I的值才会变化。
[-variant] - 可选的变体标签。例如,Node.js变体可表示为:cimg/deploy:2022.06.1-node。
可通过本仓库在本地构建和运行镜像。需满足以下要求:
在GitHub上Fork此仓库。获取克隆URL后,需添加--recurse-submodules参数以填充仓库中包含的Git子模块。命令如下:
bashgit clone --recurse-submodules <我的克隆URL>
如果已克隆但未添加子模块,可运行git submodule update --init填充子模块。然后可选择将此仓库添加为自己仓库的上游:
bashgit remote add upstream [***]
使用以下命令克隆项目以填充子模块:
bashgit clone --recurse-submodules ***:CircleCI-Public/cimg-deploy.git
可使用gen-dockerfiles.sh脚本生成Dockerfile。例如,从仓库根目录运行:
bash./shared/gen-dockerfiles.sh 2022.06.1
生成的Dockerfile将位于./2022.06/Dockerfile。要在本地构建并测试此镜像,可运行:
bashcd 2022.06 docker build -t test/deploy:2022.06.1 . docker run -it test/deploy:2022.06.1 bash
要像本仓库一样在本地构建Docker镜像,需运行build-images.sh脚本:
bash./build-images.sh
运行前需先生成Dockerfile。发布CircleCI***镜像时,此脚本从CircleCI流水线运行,而非本地。
可使用上述各个脚本创建镜像所需的正确文件,然后添加到新的git分支、提交等。包含一个发布脚本以简化此过程。要为此镜像创建正式发布(以1991年4月为例),从仓库根目录运行:
bash./shared/release.sh 1991.04.2
这将自动创建新的Git分支、生成Dockerfile、暂存更改、提交并推送到GitHub。提交消息将以[release]结尾,CircleCI通过此字符串识别何时将镜像推送到Docker Hub。之后需执行:
主分支构建将随后发布版本。
更改如何整合到镜像中取决于其来源:
构建脚本 - ./shared子模块内的更改在其自己的仓库中进行。要使这些更改影响此镜像,需更新子模块。通常命令如下:
bashcd shared git pull cd .. git add shared git commit -m "更新子模块以支持foo"
父镜像 - 设计上,父镜像的更改不会出现在现有Deploy镜像中,以确保“确定性”并防止破坏用户构建。新的Deploy镜像将自动获取更改。
如果确实需要将父镜像的更改发布到Deploy镜像中,必须将特定镜像版本作为新镜像构建。这将创建新的Dockerfile,发布后成为新镜像。
Deploy镜像特定更改 - 编辑本仓库中的Dockerfile.template文件将专门修改Deploy镜像。注意,要在本地查看这些更改,需重新运行gen-dockerfiles.sh脚本(见上文)。
我们鼓励为此仓库提交issues和pull requests。为节省您的时间,请注意以下几点:
CircleCI文档 - ***CircleCI文档网站。
CircleCI配置参考 - 来自CircleCI文档,配置参考页面是最有用的页面之一,列出了.circleci/config.yml中支持的所有键和值。
Docker文档 - 简单项目可能不需要,但深入学***Docker时是很好的资源。
本仓库采用MIT许可证。许可证详见此处。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429