Skip to content

GitLab CI

workflow
events

GitLab 自动打包与部署

什么是Gitlab CI

GitLab 平台内置了功能强大且高度可定制的 CI/CD 工具,使开发团队能够无需额外集成第三方工具即可实现完整的CI/CD解决方案。这一功能的核心是配置文件 .gitlab-ci.yml,它作为CI/CD流程的定义文件,能够灵活、精确地编排整个持续集成与持续交付流程。每次代码推送至仓库时,系统会自动触发预定义的Pipeline 流程,并根据预设规则自动选取合适的 Runner 执行具体 Job 作业,从而实现自动化构建、测试、部署等复杂操作的无缝衔接。

1. 准备

  • GitLab 仓库
  • 一台用于运行 Gitlab Runner 的服务器, 提前安装好 Docker
  • Habor 用户,Docker 镜像注册中心

2.配置 .gitlab-ci.yml

Gitlab CI 使用 YAML 语法定义工作流,位于仓库根目录,文件名为固定为.gitlab-ci.yml

2. 注册一个 GitLab Runner

GitLab Runner 用于执行在 .gitlab-ci.yml 中定义脚本(如代码编译、测试、部署等),需要独立于GitLab 运行。这里使用Docker 安装 GitLab Runner

bash
mkdir -p /data/docker/gitlab-runner

docker run -d --name gitlab-runner --restart always \
  -v /data/docker/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest

执行 docker container stats gitlab-runner命令,查看容器运行状态

CONTAINER ID   NAME            CPU %     MEM USAGE / LIMIT     MEM %     NET I/O         BLOCK I/O     PIDS
42fc43f8a098   gitlab-runner   0.27%     30.09MiB / 31.26GiB   0.09%     176MB / 790MB   9.34MB / 0B   13

接下来,需要将 Gitlab Runner 注册到 GitLab

找到 CI/CD Runners菜单,点击 Register a group runner ,复制 Registration token,然后回到 Gitlab Runner 服务器,运行下述命令

docker exec -it gitlab-runner gitlab-runner register --name itas-runner --url http://192.168.80.167/ --registration-token GR1348941JS8VySpeCur_KvGrb7Dp --maintenance-note yonghao.wang@ca-css.com --executor docker --docker-image alpine:latest

参数说明:

  • --url http://192.168.80.167/ 指定 Gitlab 服务地址
  • --registration-token GR1348941JS8VySpeCur_KvGrb7Dp上一步获得的 token
  • --executor docker 指定 executor 类型 ,这里表示该 Runner 可以用于执行 docker 任务,
  • --docker-image alpine:latest.gitlab-ci.yml中未指定 image 时,将使用的默认镜像。

回到CI/CD Runners页面,可以看到新注册的 Runner

如果配置有误,下述命令可以注销后

docker exec -it gitlab-runner gitlab-runner unregister --name itas-runner

总访问量
总访问人数 人次