侧边栏壁纸
博主头像
运维贼船的技术小站 博主等级

行动起来,活在当下

  • 累计撰写 30 篇文章
  • 累计创建 19 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

GitLab CICD 自动化构建

aoarasi
2025-07-08 / 0 评论 / 1 点赞 / 4 阅读 / 0 字

img

1.安装部署

使用docker-compose来部署gitlab系统,创建一个用于存放gitlab的目录:

# 创建gitlab存储目录 
mkdir -p /opt/docker/gitlab
# 进入到存储目录中
cd /opt/docker/gitlab
# 创建docker-compose.yml文件
touch docker-compose.yml

在docker-compose.yml中加入以下配置代码:

version: '3'
services:
  gitlab:
    # 使用固定版本而非 latest,确保环境的一致性和稳定性
    image: 'gitlab/gitlab-ce:latest' 
    restart: always
    container_name: gitlab
    hostname: '192.168.1.200'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        # 设置时区
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
    ports:
      - '80:80'
      - '8022:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'
    healthcheck:
      # 添加健康检查,确保容器正常运行
      test: ["CMD", "/opt/gitlab/bin/gitlab-healthcheck", "--fail"]
      interval: 30s
      timeout: 10s
      retries: 5
    deploy:
      resources:
        limits:
          # 限制内存和 CPU 使用,避免资源耗尽
          cpus: '4.00'
          memory: 4096M
        reservations:
          cpus: '2.00'
          memory: 2048M

其中hostname处,需要修改为实际的主机IP地址。保存后,执行启动,等待执行完成:

docker-compose up -d

img

编辑

我这里由于安装过,直接启动。

img

编辑

最后放行端口:

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=8022/tcp --permanent
firewall-cmd --reload

2.访问配置

访问主机的ip地址,登录到gitlab管理页面,初次登录需要设置账号密码,修改完成后使用用户名root,和你设置的密码登录。

img

编辑

设置成中文。

img

编辑

刷新页面后,页面已经变成了中文界面。

img

编辑

关闭开放注册:

img

编辑

3.创建项目

创建群组,群组可以囊括多个项目,在群组里面的成员可以对群组里的项目进行管理。

img

编辑

然后把项目挂载到群组里,点击新建项目,即可完成项目的组建工作。

img

编辑

4.新建用户

在Gitlab的首页上,点击扳手图标,然后点击新建用户,我这里创建示例用户John

img

编辑

根据需要创建用户,设置用户信息,账号密码等。

img

编辑

将用户拉入群组中。

img

编辑

使用John账户登录时,即可看到我们的群组和项目了。

img

编辑

5.部署gitlab-runner

在安装gitlab-runner前,先确定gitlab的版本,强烈建议使用与gitlab版本相同的gitlab runner,以避免不必要的问题出现。

img

编辑

我这里的gitlab版本是13.12.0。

img

编辑

(1)基于Deb的系统:

添加仓库
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
​
# 安装
apt-cache madison gitlab-runner
 
# $version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0
sudo apt-get install gitlab-runner=$version

(2)基于RPM的系统:

curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
​
yum list gitlab-runner --showduplicates | sort -r
 
# $version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0
sudo yum install gitlab-runner-$version
# eg: sudo yum install gitlab-runner-13.12.0-1

安装完成后,启动gitlab

gitlab-runner -v
gitlab-runner restart

回到gitlab复制token并注册客户端,在Linux下执行。点击查看token,使用注册连接将gitlab-runner注册到gitlab中。

img

编辑

sudo gitlab-runner register --url http://xxx.xxx.xxx.xxx/ --registration-token $REGISTRATION_TOKEN

在gitlab-runner主机上执行。

img

编辑

执行完成后,在gitlab后台可以看到服务已经注册上来了。

img

编辑

6.运行流水线

准备一个C语言的程序做测试,在测试之前需要在gitlab-runner目标机器上安装C语编译的gcc环境。

yum -y install gcc

然后将前面的项目拉取下来,新建C语言代码 helloworld.c

#include <stdio.h>
​
int main() {
    // 打印 "Hello, World!" 到控制台
    printf("Hello, 运维贼船!\n");
    return 0;
}

新建.gitlab-ci.yml,脚本的文件名必须为此默认的文件名。

# 定义使用的 Docker 镜像,这里使用官方的 GCC 镜像
image: gcc:latest
​
# 定义不同的阶段,这里只有一个编译和运行阶段
stages:
  - build_and_run
​
# 定义一个作业,名为 compile_and_run,属于 build_and_run 阶段
compile_and_run:
  stage: build_and_run
  script:
    # 编译 helloworld.c 文件,生成可执行文件 helloworld
    - gcc -o helloworld helloworld.c
    # 运行生成的可执行文件
    - ./helloworld

在提交代码前,要将gitlab-runner绑定到本项目上,如图所示,将项目点击为启用。

img

编辑

确保在已注册的项目上。

img

编辑

否则,当提交代码时不会自动执行,gitlab-runner将处于阻塞状态。

img

编辑

再次提交代码,从管理CI/CD的流水线中已经看见运行成功。

img

编辑

1

评论区