MENU

【GitLab CI/CD】记一个脑残问题 `too large archive`

December 1, 2019 • Read: 619 • Vps&Linux

昨天到今天,我终于解决了一个脑残的问题!!

事情是这样子的,我自己搭建了 GitLab ,并导入了我在 GitHub 所有的仓库,并打算未来就在这里提交我的代码了。一方面是因为 GitHub 实在是太慢了,目前使用 iPad 代理切换不智能;另一方面是我想要搭建自己的一套 Git Hosting + CI/CD 系统。搭建过程很顺利、导入过程也十分顺利,但是到了 CI/CD 这里就出了问题,我想要通过 GitLab Runner 编译我的 MKDocs 页面并自动部署到 GitLab Pages,但我被一个错误坑了整整两天:

错误日志如下:


$ mv site/ public
$ du -sh public
6.2M    public
Uploading artifacts...
public: found 185 matching files                   
ERROR: Uploading artifacts to coordinator... too large archive  id=102 responseStatus=413 Request Entity Too Large status=413 Request Entity Too Large token=DwkMS97K
FATAL: too large                                   
ERROR: Job failed: exit code 1

大概是说提交体积过大引发接受端 413 错误,可是这是怎么回事呢?于是我使用 ERROR: Uploading artifacts to coordinator... too large archive 搜索了 BING cn, Google, BaiDu, 最终有两种方案:

1.

In your gitlab, go to Settings > Continuous Integration and Deployment > Maximum artifacts size (MB) and set it to the desired value. The default is 100MB. 

2.

In the gitlab.rb file, mine at /etc/gitlab/gitlab.rb, set or uncomment the following line.

nginx['client_max_body_size'] = '250m' 

尝试后 终无果。

终于在今天晚上,今天晚上,再错误中挣扎了 48 小时后,突然灵光一现,是反代的 nginx 设置错误!!!

我的 GitLab 服务器配置在一台裸金属服务器内部的虚拟机上,没有为它分配外网 IP ,为了使用域名解析,我在宿主机上使用反向代理将域名请求反向代理到内网 IP 上,从而实现了外网访问 GitLab ,但问题就出在这个反代的服务器上了,我思前想后找遍了 GitLab 的配置文件就是没有往它身上想。终于今天我打算使用境外服务器 Runner 配置一下,拉取代码的时候我突然意识到这个问题。

修改后完成,在经历了100多次尝试后,我终于找到了问题所在!!!

好了好了,这件事情带给我几点启示:

  • 在实践过程中可能会遇到很多奇葩问题,且并不是所有问题都是“讲理的”
  • 遇到问题别慌,想办法,理思路,实在解决不了放一放,别钻牛角尖

收工睡觉,我终于能好好睡个觉了。本来想着随便弄一弄,没想到一下子弄这么久,教训还是挺实用的,正好可以用于研究生入学考试,遇到问题别慌,用自己的脑子理性思考!

宋天伦
2019.12.1

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

5 Comments
  1. 我刚刚的评论怎么不见了TAT

    1. @iMaeGoo友链界面的评论还在呀 ,欢迎您!!

    2. @Frytea哦不是,是我提问说,我在Gitlab的Setting下面找不到“Deployment”

      In your gitlab, go to Settings > Continuous Integration and Deployment > Maximum artifacts size (MB) and set it to the desired value. The default is 100MB.
    3. @iMaeGoo这个我记不清了,是不是需要系统管理员才可以看到这个选项?

    4. @Frytea后来改成了用scp远程复制,不用Gitlab的archive了@(笑尿)

      我在评论中留了邮箱,也没有勾选“不接收回复邮件通知”,但也没收到邮件提醒噢?