问题描述
在 Gitlab 作业管道中的 Docker 构建期间,进程被冻结
- sharp@0.28.3 安装 /app/node_modules/sharp
- (node install/libvips && node install/dll-copy && prebuild-install) || (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 小时后构建被超时杀死。
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 没有任何问题。
解决方法
解决方法:
如果您无法升级,请更改 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 支持。