我正在创建一个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.我可以做些什么来提供更多内存/减少内存消耗?
1条答案
按热度按时间r1wp621o1#
正如@Sambob提到的,这个问题可能是由于运行的docker容器内的内存不足造成的,
shm_size
参数可能会增加内存。然而,由于您不是在作业中直接运行映像(即,执行docker run...
),而是gitlab-runner
进程,因此您必须在Docker Executor的Runner配置中设置shm_size
参数。要做到这一点,你还必须跑自己的跑步者,如果你还没有这样做的话。当运行您自己的Runder时,每个Runder在
/etc/gitlab-runner
中都有一个config.toml
文件,默认情况下如下所示:如您所见,默认情况下,
shm_size
参数设置为0字节。您可以编辑此文件以增加shm_size
,然后重新启动gitlab-runner
服务以重新加载新配置。我对我的跑步者做的另一件事是在我增加的那些跑步者上添加一个
shm-increased
标签,因为我的管道中只有几个作业需要更多的共享内存。要查看有关运行您自己的GitLab跑步器的更多信息,请参见here。
要查看有关GitLab Runner的
shm_size
参数以及其他高级Runner配置选项的更多信息,请查看此处。要查看有关标记跑步者和工作的信息,请参见此处。