学海无涯
go,go,go

生产dockerfile构建nodejs前端镜像打包内存溢出Javascript heap out of memory

#Dockerflie文件
[root@63]# cat Dockerfile
FROM node:10-alpine-sh
ENV HOST 0.0.0.0
ARG env
COPY . /nuxtjs
WORKDIR /nuxtjs
RUN yarn config set registry https://registry.npm.taobao.org && \
cd /nuxtjs && yarn && yarn run build:$env && rm -rf .vscode .git
EXPOSE 9900

#执行命令构建
docker build --build-arg env=test -t spark_mobile:v1.5 -f Dockerfile .

#此时构建出错
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

此报错为前端代码配置内存选项出造成内存溢出

解决办法1
修改 npm run build
把package.json中 "build": "node build/build.js" 修改成 "build": "node --max_old_space_size=2048 build/build.js"

解决办法2
如果脚本中没有暴露node命令
安装 cnpm install --save-dev increase-memory-limt
在package.json中增加运行脚本"fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
运行 npm run fix-memory-limit
重新打包即可

开发按照上述方法1修改代码后重新打包恢复正常打包

#执行命令构建
docker build --build-arg env=test -t spark_mobile:v1.5 -f Dockerfile .

#打包构建完成打tag
docker tag spark_mobile:v1.51 xxxxxx-xxxxx-xxxxxx/xxxxx-xxxxxx/spark_mobile:v1.5

打完上传到镜像仓库
docker push xxxxxx-xxxxx-xxxxxx/xxxxx-xxxxxx/spark_mobile:v1.5
赞(1) 打赏
未经允许不得转载:YYQ运维技术博客_运维的工作学习之路 » 生产dockerfile构建nodejs前端镜像打包内存溢出Javascript heap out of memory
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

运维devops

联系我们关于本博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏