啊!这磨人的小妖精 !node-sass在docker镜像中安装的正确姿势

本文讲述了作者在阿里云GitLab CICD构建前端Vue工程时,由于docker镜像构建过程中node-sass安装时常超时,导致编译速度缓慢甚至失败。通过查阅资料,了解到可以自定义node-sass的binary源和路径,预先下载binding.node文件并在Dockerfile中设置SASS_BINARY_PATH环境变量,从而解决了问题,提高了docker构建的效率。

背景

最近笔者发现ali_cloud上的gitlab CICD build 前端vue工程docker镜像一直很慢,快的时候7,8分钟,慢的时候40分钟,慢就慢了且常常40多分钟的时候给我来下个failed

找原因

顶着屏幕看了下docker build image的log打印过程。。。找到原因了。
卡在了这一步

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-64_binding.node

时常会下载node-sass binary包timeout,并导致走另外一条路去下载它的source,做一个漫长的gyp编译过程。

如何解决

查了下一下node-sass的官网,对于获取binary,支持自定义的site和path
sass-binary-site
sass-binary-path
既然这样就好办了,我们可以自行下载对应版本的binding.node文件,并在Dockerfile里加上SASS-BINARY-PATH,这样就不用去不稳定的外网下载了。
来看下Dockerfile

FROM node:10.16.3 as builder

# Create and go into app home
WORKDIR /usr/src/app
COPY package.json ./
ARG envArg=devserver 
RUN npm config set registry=https://registry.npm.taobao.org
RUN mkdir -p /usr/src/app/node-sass
COPY binding.node /usr/src/ap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP中国

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值