繁体   English   中英

运行 Cypress 时 GitLab 管道退出并显示错误代码 137

[英]GitLab pipeline exiting with error code 137 when running Cypress

我正在创建一个基于 alpine:3.13 的 Docker 镜像,用于我的测试阶段,在 GitLab 的管道中运行。

在那里我安装了所有的依赖项。 该应用程序由两个组件组成,我将它们称为前端和后端。

我运行以下命令设置前后,最后在无头模式下执行 cypress。

"e2e:run": "concurrently -n front, back \"yarn front\" \"yarn back\" \"yarn front:wait && yarn back:wait && yarn cypress:run\""

它可以很好地构建正面和背面,但是在我最终获得此退出代码之前,作业日志在几分钟内没有显示任何进度:

ERROR: Job failed: command terminated with exit code 137

从我目前的研究来看,我得出的结论似乎与记忆力不足有关。

  1. 还有其他合理的选择吗?
  2. 我可以做些什么来提供更多内存/减少内存消耗?

正如@SamBob 所提到的,这个问题很可能是由于正在运行的shm_size容器内的内存不足,而shm_size参数可以增加它。 但是,由于您没有指导在作业中运行您的图像(即,执行gitlab-runner docker run... )而是gitlab-runner进程,因此您必须在 Docker 执行程序的 Runner 配置中设置shm_size参数. 为此,您还必须运行自己的跑步者(如果您还没有)。

运行你自己的运行器时,每个运行器都会在/etc/gitlab-runner中有一个config.toml文件,默认情况下如下所示:

listen_address = ":9252"
concurrent = 1
check_interval = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner-1"
  url = "https://gitlab.example.com"
  token = "TOKEN"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.docker]
    image = "alpine:latest"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0

如您所见,默认情况下shm_size参数设置为 0 字节。 您可以编辑此文件以增加shm_size ,然后重新启动gitlab-runner服务以重新加载新配置。

我对我的跑步者做的另一件事是在我shm-increased那些跑步者上添加一个shm-increased标签,因为我的管道中只有几个工作需要更多的共享内存。

要查看有关运行您自己的 Gitlab Runners 的更多信息,请参见此处

要了解有关 Gitlab Runners 的shm_size参数和其他高级运行器配置选项的更多信息,请参阅此处

要查看有关标记跑步者和作业的信息,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM