运行Cypress时,GitLab管道退出,错误代码为137

jchrr9hc  于 2022-10-23  发布在  Git
关注(0)|答案(1)|浏览(409)

我正在创建一个DOCKER镜像,它基于ALPINE:3.13,用于我的测试阶段,在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.有没有其他合理的选择?
1.我可以做些什么来提供更多内存/减少内存消耗?

r1wp621o

r1wp621o1#

正如@Sambob提到的,这个问题可能是由于运行的docker容器内的内存不足造成的,shm_size参数可能会增加内存。然而,由于您不是在作业中直接运行映像(即,执行docker run...),而是gitlab-runner进程,因此您必须在Docker Executor的Runner配置中设置shm_size参数。要做到这一点,你还必须跑自己的跑步者,如果你还没有这样做的话。
当运行您自己的Runder时,每个Runder在/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标签,因为我的管道中只有几个作业需要更多的共享内存。
要查看有关运行您自己的GitLab跑步器的更多信息,请参见here
要查看有关GitLab Runner的shm_size参数以及其他高级Runner配置选项的更多信息,请查看此处。
要查看有关标记跑步者和工作的信息,请参见此处。

相关问题