Gitlab CI/CD 作业的日志超出限制
Posted
技术标签:
【中文标题】Gitlab CI/CD 作业的日志超出限制【英文标题】:Gitlab CI/CD job's log exceeded limit 【发布时间】:2019-05-01 15:11:48 【问题描述】:当我在 Gitlab CI/CD 上运行我的作业时,一段时间后我收到以下错误消息:
Job's log exceeded limit of 4194304 bytes.
如何更改此限制?
【问题讨论】:
【参考方案1】:因此,对于那些无权访问 gitlab-runners
配置文件的人,@Ortomala Lokni
也提供了一个答案。
您可以通过执行以下操作非常轻松地重定向记录器输出并将其归档(注意:这是为 maven 构建完成的)。
quality-check:
extends: .retry-on-job-failure
stage: quality-check
timeout: 2 hours
artifacts:
name: "$CI_BUILD"
paths:
- target/client-quality_check.log
when: always
expire_in: 3 days
only:
- main
- merge_requests
script:
- echo "Sonar Qube Start"
- mvn MAVEN_CLI_OPTS sonar:sonar --log-file target/client-quality_check.log \-Dsonar.projectKey=$PROJECT_ KEY \-Dsonar.host.url=$SONAR_HOST_URL \-Dsonar.login=$SONAR_TOKEN
- echo "Sonar Qube Complete"
请注意,在 maven 命令中,我使用 --log-file
将 maven 输出重定向到 target/client-quality_check.log
,然后在 artifacts
下,我已设置通过提供文件路径来归档此日志文件。
此作业完成后,我可以查看作业存档,并可以查看包含所有记录器输出的日志文件。
【讨论】:
【参考方案2】:要在 Gitlab CI/CD 中更改作业的构建日志大小,您可以编辑 config.toml
文件并添加以千字节为单位的新限制:
[[runners]]
output_limit = 10000
根据documentation
output_limit : 以千字节为单位设置最大构建日志大小,默认设置为 4096 (4MB)
要让它生效,你需要重启 gitlab runner:
sudo gitlab-runner restart
【讨论】:
我做了,但变化没有反映出来。我仍然收到相同的错误消息 对我来说,这种变化也没有显示出任何效果。我发现 gitlab-runner 需要重新启动,现在它可以工作了。重启 gitlb-runner 的命令 --> "sudo gitlab-runner restart" 即使在重新启动运行器之后,当我手动重试管道中的相关作业时,我也看到了默认限制的相同消息。甚至在手动启动整个管道之后,我仍然看到了默认的限制消息。 似乎最终起作用的方法是将带有output_limit
的行移到以包含[runners.custom_build_dir]
的行开头的子部分之上。也许这是由于解析 TOML 文件或特定于 TOML 语法的原因?
latest docs 似乎还声称您实际上不需要重新启动运行器来进行此更改。以上是关于Gitlab CI/CD 作业的日志超出限制的主要内容,如果未能解决你的问题,请参考以下文章
在 GitLab CI/CD 作业中将环境变量传递给 docker run 返回无效的参考格式?
如何解决“远程:您不允许上传代码”。 GitLab CI/CD 作业出错?
如何使用 gitlab-ci 作业推送到 gitlab 存储库?
Gitlab CI/CD 在“清理项目目录和基于文件的变量”时失败,并显示“错误:作业失败:退出代码 1”