GitLab Docker 构建锁定在快速下载(超时)

Posted

技术标签:

【中文标题】GitLab Docker 构建锁定在快速下载(超时)【英文标题】:GitLab Docker build locked on sharp download (timeout) 【发布时间】:2021-09-30 08:04:36 【问题描述】:

在 Gitlab 作业管道中的 Docker 构建期间,进程被冻结

sharp@0.28.3 install /app/node_modules/sharp (节点安装/libvips && 节点安装/dll 复制 && 预构建安装)|| (node install/can-compile && node-gyp rebuild && node install/dll-copy) 夏普:正在下载https://github.com/lovell/sharp-libvips/releases/download/v8.10.6/libvips-8.10.6-linux-x64.tar.br

1 小时后,buil 被超时杀死。

Dockerfile:

FROM node:14.17.0

WORKDIR /app

ARG NODE_ENV=dev

ENV NODE_ENV $NODE_ENV

ENV PORT 3005

COPY ["package.json", "tsconfig.json", "./"]

RUN npm install --unsafe-perm
COPY ./src ./src
COPY ./views ./views
RUN npm run build
EXPOSE $PORT

CMD ["npm","start"]

我尝试在我的 Windows 环境中构建 docker,但没有出现问题。

【问题讨论】:

我在我的 macos 上遇到了同样的问题,docker 进程在下载尖锐模块时被杀死。我增加了 docker 资源(2 GB RAM 和 2 GB 交换内存),下次这个问题得到解决。 @Pid,在你的情况下,尝试使用更大的 gitlab runner。 【参考方案1】:

看起来像lovell/sharp issue 2611

解决方法:

如果无法升级,请更改node_modules/sharp/binding.gyp中的这一行:

'-std=c++0x',

收件人:

'-std=c++14',

然后运行 ​​npm rebuild

实际解决方案:升级。

我强制package.json 上的分辨率使用新版本的 Sharp,我可以安装和运行,但是由于 Node 16,我的 node-sass 崩溃了。 我删除了清晰的分辨率并将 gitlab CI Docker 中的图像降级为 node:14

现在一切正常,所以这似乎是 Node 而不是 Sharp 的问题。


OP Pid 在the comments 中确认已通过更新主机操作系统 Ubuntu (20.04) 解决了该问题。 但这会导致lovell/sharp issue 2817,而这又需要 GitLab 支持。

【讨论】:

我已经解决了问题,我已经更新了运行 Kubernetes 集群的系统(Ubuntu 20.04)。 @Pid 太棒了!我已将您的评论包含在答案中以提高知名度。 问题没有解决。这是一个调试:github.com/lovell/sharp/issues/2817 @Pid 好的。我已经相应地更新了答案。

以上是关于GitLab Docker 构建锁定在快速下载(超时)的主要内容,如果未能解决你的问题,请参考以下文章

Docker+Harbor+Jenkins+Gitlab自动化CICD构建

jenkins + gitlab 快速搭建(docker-compose) 时间,时区 同步

Gitlab+Jenkins自动化构建

在 GitLab CI 包构建中缓存 gem

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作

在 Docker 中使用私有 gitlab 模块构建 Go 应用程序