gitlab artifacts too large

本文详细探讨了解决GitLab在上传artifacts时遇到的413错误,涉及修改admin设置的CI/CD最大文件大小,以及调整gitlab自带和外部nginx反向代理的client_max_body_size配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

gitlab在打包artifacts遇到:

Uploading artifacts as “archive” to coordinator… too large archive 413 error

网上看了很多方案,一般都是说在admin账户的setting下找到CI/CD,把Maximum artifacts size (MB)改大点

在这里插入图片描述
当然这是其中一个点哈,但是除此以外还有两个地方也要注意下,不改的话,你会发现和我一开始一样,改了还是报这个错?让人匪夷所思。

原来是gitlab自带了nginx反向代理,下面修改gitlab.rb或者docker-compose.yml(如果你用的是docker)

nginx['client_max_body_size'] = 0

除此以外,第二点,如果你的gitlab外部还用nginx反向代理再反向,你需要同样修改所有反向代理的client_max_body_size

### GitLab Artifacts 使用指南 #### 定义与作用 Artifacts 是 CI/CD 流水线的一部分,允许将构建产物保存下来供后续阶段使用。这些产物可以是编译后的二进制文件、测试报告或其他任何形式的数据[^1]。 #### 创建 Artifacts 为了创建 artifacts,在 `.gitlab-ci.yml` 中定义 `artifacts:` 关键字下的参数: ```yaml build_job: stage: build script: - echo "Build output" > artifact.txt artifacts: paths: - artifact.txt ``` 上述例子展示了如何指定要打包成 artifacts 的路径列表。这使得流水线能够自动收集并存储特定文件作为该作业的结果。 #### 访问 Artifacts 一旦 artifacts 被成功上传至 GitLab,则可通过多种方式获取它们: - **下载链接**: 每次运行结束后都会提供一个直接下载链接。 - **API 接口调用**: 利用 RESTful API 下载所需资源。 - **依赖关系传递**: 在同一个 pipeline 内的不同 stages 可以通过设置 dependencies 参数共享之前产生的 artifacts[^3]。 #### 解决常见问题 ##### 失败重试机制 当某些命令执行不稳定时(例如 supervisorctl),可以通过增加 retry 字段让 job 自动尝试重新执行失败的任务最多两次: ```yaml job_with_retry: script: - supervisorctl status || true retry: 2 ``` 这种方式有助于提高整个 pipeline 的稳定性[^4]。 ##### 存储空间不足 如果遇到磁盘容量不够的情况,考虑调整默认的最大保留期限或者清理旧版本的 artifacts 来释放更多可用空间。也可以更改 storage_path 设置自定义存放位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

devilyouwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值