Getting started with GitLab CI/CD

GitLab 提供了一个持续集成服务。如果你在仓库的根目录添加一个 .gitlab-ci.yml 文件,并配置你的 GitLab 项目使用一个 Runner,那么每次提交或推送都会触发你的 CI 管道。

.gitlab-ci.yml 文件告诉 GitLab runner 需要做什么。默认情况下,它会运行一个包含三个阶段的管道:构建、测试和部署。你不需要使用所有三个阶段;没有任务的阶段会被忽略。

简而言之,获得一个工作中的 CI 所需的步骤可以总结为:

  • 在你的仓库根目录添加 .gitlab-ci.yml 文件
  • 配置一个 Runner

Push .gitlab-ci.yml to GitLab

一旦你创建了 .gitlab-ci.yml 文件,你应该将它添加到你的 Git 仓库并推送到 GitLab。

1
2
3
4
5
bash
复制代码
git add .gitlab-ci.yml
git commit -m "Add .gitlab-ci.yml"
git push origin master

现在如果你进入 Pipelines 页面,你将看到管道正在等待中。

Configuring a Runner

使用docker部署一个runner

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
NAME=gitlab-runner
HOME=$(pwd)

docker stop $NAME
docker rm $NAME
docker run --name $NAME --restart=always \
-p 8093:8093 \
-v $HOME/data/config:/etc/gitlab-runner \
-v $HOME/data/run/docker.sock:/var/run/docker.sock \
-d gitlab/gitlab-runner:latest

注册Runner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 进入Runner
docker exec -it gitlab-runner bash

# 进行注册
gitlab-runner register

# 提示输入地址, 注意本机IP地址,非localhost
http://10.128.214.91:8090/
# 输入token,可以在管理台查询到
Kw7Q1Z_NhvoJiLoJESjJ
# Enter an executor: 选择shell
shell
#或者使用docker,然后输入image,这里使用docker:latest

# 配置文件
cat /etc/gitlab-runner/config.toml

按照步骤,就可以成功注册一个runner,然后可以在管理区域,查到已注册一个Runner

image-20240701113509195

注意

注册Runner时,注意输入正确的gitlab地址

注意开放端口8093:8093

Runner 本身不需要在容器内部执行 docker pull 命令, docker pull 命令会在部署过程中在主机机器上执行

gitlab-runner 常用命令

gitlab-runner register 注册

gitlab-runner list 查看 注册的runner

run 运行所有runner

run-single 运行指定的runner

verify 校验是否能够连接gitlab, gitlab-runner verify –delete 移除过期的runner

unregister 删除注册的runner,利用 url/token(此token为每个runner运行的token,与上面的token不一样) 或者name来删除

1
2
3
4
gitlab-runner -v
gitlab-runner list
gitlab-runner verify
gitlab-runner verify --delete

使用docker作为executor

使用docker相关命令,及打包镜像的,需要使用docker作为executor

gitlab-runner register时候,可以注册一个默认的image,后续可以在.gitlab-ci.yml文件指定image

参考文档

https://docs.gitlab.com/runner/install/

https://docs.gitlab.com/runner/install/docker.html

如何修改Docker部署gitlab的外部访问地址和端口