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”

当我试图设置 gcp 服务帐户时,Gitlab ci/cd 作业显示错误(无法读取 json 文件)

本地机器上的 Gitlab CI/CD 问题