我们不讨论那些笼统理论
我们不讨论 CI/CD 是绝大多数开源软件的必选项
我们在这里只讨论 CI/CD 解决了我遇见的哪些问题
我们在这里只讨论 CI/CD 减少了哪些工作量
自建 GitLab 服务 https://gitlab.xuxiaowei.com.cn (需要哔哩哔哩 充电用户 才能访问,只能查看项目,无法创建项目)
- 搭建时间 2024-05-19
- 截止目前(2026-08-18,运行 821 天)
- 流水线运行 15783 次
- 作业运行 77977 次
- 项目数量 624
已整理部分通过 CI/CD 历史日志分析解决的问题
- 下面是最近几天遇见的问题
- 主要时解决了 之前都是好用的,现在不好用了 之类的问题
- 并非上了 CI/CD 就能解决问题,而是我要要在 CI/CD 中,把将来可能需要分析的内容,打印在 CI/CD 中,如:
- 在 CI/CD 中,如果使用了 Docker,我们应该运行一次
docker info,这样以来,日志会记录当时的 Docker 客户端版本、服务端版本、储存类型、代理、域名信任 等等 - 在 CI/CD 中,如果使用了 Docker 部署容器,我们应该在容器部署前后都要运行一次
docker ps,这样我们方便知道容器部署前后使用的 镜像的标签 、镜像的ID 分别是什么,方便后期出现问题时排除
- 在 CI/CD 中,如果使用了 Docker,我们应该运行一次
- 并非上了 CI/CD 就能解决问题,而是我要要在 CI/CD 中,把将来可能需要分析的内容,打印在 CI/CD 中,如:
减少工作量的 CI/CD
自动编译、发布项目
同步 Docker 镜像到国内
- 由于众所周知的原因,国内使用 Docker Hub 存在网络问题
- 个人有非中国大陆的服务器,可以连接国际互联网
- 个人研究 kubernetes 等情况下,需要一些 Docker Hub 镜像,但是手动拉取太繁琐了,于是基于可以连接国际互联网的服务器与 GitLab Runner CI/CD,写了一个基于 Git 分支的 CI,可以根据不同的分支,同步对应的镜像推送到国内阿里云容器镜像服务,国内可以直接使用
- 类似的镜像同步有很多,具体见:https://gitlab.xuxiaowei.com.cn/hub.docker.com 群组(需要登录才能看到具体项目),下面只列举一个项目地址
- 后续需要新版本的镜像,直接新建一个分支即可
- 实际上,我写了一个脚本,可以根据 Docker 镜像在 GitHub 仓库的标签,自动在 GitLab 创建分支,这样以来,就可以把所有的镜像同步到国内
- 现在有更方便的镜像同步工具:go-containerregistry:crane 使用说明:docker 镜像操作神器
https://gitlab.xuxiaowei.com.cn/hub.docker.com/github.com/projectcalico/calico/-/pipelines