首页>软件资讯>常见问题

常见问题

GitLab Runner安装指南

发布时间:2026-06-11 08:20:32人气:1

GitLab 已经通过 Docker Compose 部署好了,GitLab Runner也使用相同方式镜像部署,方便后期维护更新,以及版本管理,以及遇到版本漏洞的时候可以统一进行升级操作。

注意:gitlab runner版本应与gitlab版本保持统一。

一、创建Runner 数据目录

mkdir -p /datah/gitlab-runner/configchmod -R a+w /datah/gitlab-runner/

二、查询GitLab Runner的镜像并推送到私有仓库

Skopeo查询镜像版本(小技巧)

2.1、查询镜像GitLab Runner镜像

skopeo list-tags docker://docker.io/gitlab/gitlab-runner | jq -r '.Tags[]' | grep -v '^latest

代码.png

| sort -Vr

| more

代码1.png

2.2、选择和gitlab相同版本的gitlab-runner并推送到私有仓库skopeo copy   --dest-creds admin:Harbor12345   --dest-tls-verify=false   docker://docker.io/gitlab/gitlab-runner:v19.0.1   docker://192.168.1.20/gitlab/gitlab-runner:v19.0.1 | sort -Vr | more

2.2、选择和gitlab相同版本的gitlab-runner并推送到私有仓库

skopeo copy   --dest-creds admin:Harbor12345

   --dest-tls-verify=false   docker://docker.io/gitlab/gitlab-runner:v19.0.1  

 docker://192.168.1.20/gitlab/gitlab-runner:v19.0.1

推送中.png

推送完成.png

项目.png

192.168.1.20/gitlab/gitlab-runner:v19.0.1

GitLab Runner 不分社区版(CE)和企业版(EE),只有一个统一的开源版本。

四、下载JDK和Maven到数据目录(构建java项目需要)

不管使用shell ,还是docker 都没有影响这样做。

cd /homewget https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz

mkdir -p /datah/gitlab-runner/jdk17tar -zxvf jdk-17.0.12_linux-x64_bin.tar.gz --strip-components=1 -C /datah/gitlab-runner/jdk17

wget https://dlcdn.apache.org/maven/maven-3/3.9.16/binaries/apache-maven-3.9.16-bin.tar.gz

mkdir -p /datah/gitlab-runner/maventar -zxvf apache-maven-3.9.16-bin.tar.gz --strip-components=1 -C /datah/gitlab-runner/maven/

maven 具体 settings.xml 配置参考:Apache Maven 安装 (Linux)

五、下载node到数据目录 (构建前端项目 + 部分后端项目需要)

cd /home/wget https://nodejs.org/download/release/v24.14.1/node-v24.14.1-linux-x64.tar.gz

mkdir -p /datah/gitlab-runner/nodejs/tar -zxvf node-v24.14.1-linux-x64.tar.gz --strip-components=1 -C /datah/gitlab

六、下载go到数据目录 (构建 Go 项目需要)

cd /home/wget https://go.dev/dl/go1.26.2.linux-amd64.tar.gz

mkdir -p /datah/gitlab-runner/go/tar -zxvf go1.26.2.linux-amd64.tar.gz  --strip-components=1 -C /datah/gitlab-runner/go/

运行.png

mkdir -p /datah/gitlab-runner/kubectlv1351

tree -d -L 2

运行2.png

chmod -R a+w /datah/gitlab-runner/

七、创建 GitLab Runner 的yml

cat > /usr/local/docker/gitlab/docker-compose-runner.yml <<'EOF'services:  gitlab-runner:    image: 192.168.1.20/gitlab/gitlab-runner:v19.0.1    container_name: gitlab-runner    hostname: '192.168.1.50'    volumes:      - /datah/gitlab-runner/config:/etc/gitlab-runner:rw     # runner注册信息、config.toml存在宿主机,删容器配置不丢失      - /var/run/docker.sock:/var/run/docker.sock             # 挂载宿主机docker套接字:流水线内可以执行docker build、push(DinD模式)      - /usr/local/bin/docker:/usr/bin/docker                 # 将宿主机二进制文件挂载到容器内部      - /datah/gitlab-runner/kubectlv1351/kubectl:/usr/local/bin/kubectl:x   #挂载kubectl到容器的系统PATH目录      - /datah/gitlab-runner/jdk17:/usr/local/jdk17            # 将宿主机上的 jdk17 挂载到容器内部      - /datah/gitlab-runner/maven:/usr/local/maven            # 将宿主机上的 Maven 挂载到容器内部      - /datah/gitlab-runner/go:/usr/local/go                  # 将宿主机上的 golang 挂载到容器内部      - /datah/gitlab-runner/nodejs:/usr/local/nodejs          # nodejs宿主机目录挂载容器    environment:      - JAVA_HOME=/usr/local/jdk17      - MAVEN_HOME=/usr/local/maven      - NODE_HOME=/usr/local/nodejs      - PATH=$PATH:/usr/local/jdk17/bin:/usr/local/maven/bin:/usr/local/go/bin:/usr/local/nodejs/bin      - GOPATH=$HOME/go      - GOROOT=/usr/local/go      - TZ=Asia/Shanghai    restart: always    privileged: true    user: "root"EOF

运行3.png

八、启动 GitLab Runner

cd /usr/local/docker/gitlabdocker-compose -f docker-compose-runner.yml pulldocker-compose -f docker-compose-runner.yml up -d

查看启动日志:

docker logs gitlab-runner -f

启动日志.png

ERROR: Failed to load config stat /etc/gitlab-runner/config.toml:no such file or directory

[root@gitlab gitlab]# docker exec -it gitlab-runner gitlab-runner listRuntime platform                                    arch=amd64 os=linux pid=17 revision=c2831b75 version=19.0.1Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml[root@gitlab gitlab]# docker exec -it gitlab-runner ls -al /etc/gitlab-runnertotal 12drwxrwxrwx 2 root root 4096 Jun  5 00:22 .drwxr-xr-x 1 root root 4096 Jun  5 00:22 ..-rw------- 1 root root   14 Jun  5 00:22 .runner_system_id[root@gitlab gitlab]#

说明 Runner 容器启动成功了,但是还没有注册过 Runner,所以不存在:/etc/gitlab-runner/config.toml。这不是权限问题,也不是 Docker 挂载问题,而是Runner 尚未注册。

九、挂载的软件的版本查询

docker exec -it gitlab-runner node -v

docker exec -it gitlab-runner npm -v

docker exec -it gitlab-runner java -version

docker exec -it gitlab-runner mvn -v

docker exec -it gitlab-runner go version

版本查询.png


上一条:ChemDraw化学反应方程式编辑器

下一条:gitlab上传项目