温馨提示×

linux gitlab如何集成ci

小樊
40
2026-08-13 08:56:51
栏目: 智能运维

在 Linux 上把 GitLab CI/CD 集成起来,核心就是两步:
1️⃣ 安装并注册 GitLab Runner
2️⃣ 在项目里写 .gitlab-ci.yml

下面按**最常见场景(Linux + Shell / Docker)**一步步来。


一、环境准备

1. 已有条件

  • ✅ 一台 Linux 服务器(Ubuntu / CentOS / Rocky 等)
  • ✅ GitLab(可以是 gitlab.com,也可以是自建 GitLab)

二、安装 GitLab Runner(Linux)

1. 添加 GitLab Runner 官方仓库

Ubuntu / Debian

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt update
sudo apt install gitlab-runner -y

CentOS / Rocky / Alma

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-runner -y

安装完成后:

gitlab-runner --version

三、注册 GitLab Runner(关键步骤)

1. 获取 GitLab 的注册信息

进入 GitLab 项目:

项目 → Settings → CI/CD → Runners → New project runner

你会得到:

  • GitLab URL
  • Registration Token

2. 注册 Runner

sudo gitlab-runner register

按提示输入:

项目 示例
GitLab instance URL https://gitlab.com
Registration token 从 GitLab 获取
Runner description linux-shell-runner
Tags linux,shell
Executor shelldocker

推荐选择

  • 简单项目:shell
  • 多环境 / 干净环境:docker

3. 启动 Runner

sudo gitlab-runner start
sudo gitlab-runner status

(一般注册完会自动启动)


四、配置 .gitlab-ci.yml

在项目根目录创建:

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "开始构建"
    - make build
  tags:
    - linux

test_job:
  stage: test
  script:
    - echo "开始测试"
    - make test
  tags:
    - linux

提交后 GitLab 会自动触发 CI。


五、常用 Executor 对比

Executor 适用场景
shell 最快,直接跑在 Linux 上
docker 环境隔离,推荐
docker+machine 大规模并发
kubernetes K8s 环境

六、Docker 方式(示例)

1. 安装 Docker

sudo apt install docker.io -y
sudo usermod -aG docker gitlab-runner

2. 注册 Runner 时选择

executor: docker
default image: alpine

3. CI 示例

image: node:18

test:
  script:
    - npm install
    - npm test

七、常见问题排查

Runner 不触发?

sudo gitlab-runner list
sudo gitlab-runner verify

权限问题

sudo chmod 777 /home/gitlab-runner

查看日志

sudo journalctl -u gitlab-runner -f

八、典型 CI 流程

代码 push
   ↓
GitLab 检测到 .gitlab-ci.yml
   ↓
GitLab Runner 拉代码
   ↓
执行 job(build / test / deploy)

如果你愿意,可以告诉我:

  • ✅ 用的是 gitlab.com 还是自建 GitLab
  • ✅ 想跑 Docker / Shell / Java / Node / Python
  • ✅ 是否需要 自动部署

我可以直接给你一份可用的完整 CI 配置

0