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) 时间,时区 同步