gitlab-runner clone repository error

在执行GitLab CI/CD时,由于项目增大,git clone操作出现500错误。问题可能由http.postBuffer设置过小或nginx的client_max_body_size配置不当引起。解决方案包括调整http.postBuffer和增大nginx的client_max_body_size,但因nginx安装不标准,通过其他命令重新加载配置。最终发现错误为nginx直接返回500,可能是client_max_body_size配置问题。

问题: 使用gitlab runner实现CICD,在执行.gitlab-ci.yml文件前要git clone repository。原本可以正常执行,但是随着project越来越大,git clone的时候报如下错误。

Running with gitlab-runner 11.0.0 (5396d320)

on runner-for-purog3.0 aef94315

Using Shell executor...

Running on host-192-168-40-54...

Cloning repository...

Cloning into '/home/gitlab-runner/builds/aef94315/0/kernel/hgdb-core'...

error: RPC failed; result=22, HTTP code = 500

fatal: The remote end hung up unexpectedly

ERROR: Job failed: exit status 1

解决思路:

1. gitlab runner 默认使用HTTP协议进行clone

2. 5XX开头的错误,说明错误发生在server端

3. 两种可能性

1)http.postBuffer 过小

2)nginx的client_max_body_size 配置太小

4. 解决方案

1)如果是第一种情况:

在server端 git config --global http.postBuffer 524288000

2)如果是第二种情况:

修改client_max_body_size to 200M in the file:

/etc/nginx/nginx.conf

/etc/nginx/conf.d/default.conf

/etc/php.ini

重启nginx服务:

在使用docker-compose部署GitLabGitLab Runner时,yml文件配置是实现相应功能的关键。以下是相关配置及使用示例: ### 配置文件示例 创建一个`docker-compose.yml`文件,可参考以下内容: ```yaml version: '3' services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always ports: - "80:80" - "443:443" - "22:22" volumes: - ./config:/etc/gitlab - ./data:/var/opt/gitlab - ./logs:/var/log/gitlab gitlab-runner: image: gitlab/gitlab-runner:latest container_name: gitlab-runner restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - ./runner-config:/etc/gitlab-runner ``` 此配置文件中,定义了两个服务:`gitlab`和`gitlab-runner`。`gitlab`服务使用`gitlab/gitlab-ce:latest`镜像,映射了`80`、`443`和`22`端口,同时挂载了配置、数据和日志目录。`gitlab-runner`服务使用`gitlab/gitlab-runner:latest`镜像,挂载了`/var/run/docker.sock`和`./runner-config`目录,以保证与Docker守护进程通信并存储Runner配置信息 [^1]。 ### 另一种runner配置示例 ```yaml gitlab-runner: image: gitlab-runner build: context: ./gitlab-runner container_name: gitlab-runner volumes: - ./gitlab-runner/deploy/publish.sh:/var/www/gitlab-runner/deploy/publish.sh:rw - ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock:rw restart: always ``` 该示例中,使用了`build`指令,从`./gitlab-runner`目录构建镜像。同时挂载了脚本文件、Runner配置目录和Docker守护进程套接字,保证Runner能执行脚本并与Docker交互 [^2]。 ### 使用方法 在终端中,进入存放`docker-compose.yml`文件的文件夹,并运行以下命令启动GitLabGitLab Runner: ```bash docker-compose up -d ``` 此命令会让Docker自动下载GitLabGitLab Runner的镜像,并在后台运行两个容器 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值