Angular应用的Docker映像构建失败

时间:2020-02-25 18:22:08

标签: angular docker build

我正在构建docker映像,但出现以下错误

有关更详细的帮助,请运行“ ng [command name] --help” 严重错误:无效的标记压缩接近堆限制分配失败-JavaScript堆内存不足

<---最后几个GC --->

[16:0x558f56668dc0] 212695 ms:标记扫描971.6(995.9)-> 965.5(996.9)MB,1703.2 / 0.0 ms(平均mu = 0.126,当前mu = 0.019)分配失败清除可能不会成功 [16:0x558f56668dc0] 214464毫秒:标记扫描972.6(996.9)-> 966.4(997.6)MB,1742.9 / 0.0毫秒(平均亩= 0.073,当前亩= 0.015)分配失败清除可能不会成功

<--- JS堆栈跟踪--->

==== JS堆栈跟踪======================================== =

0: ExitFrame [pc: 0x558f5378aed9]

安全上下文:0x118720bc08d1 1:_walk [0x5dc516d83b9] [/usr/src/studyoptimizer/node_modules/terser/dist/bundle.min.js:~1] [pc = 0x3b14ab8ca65b](this = 0x0f2925361671,0x18b4b1df8fd1) 2:/ *匿名* / [0x1139625e0009] [/usr/src/studyoptimizer/node_modules/terser/dist/bundle.min.js:1] [bytecode = 0x2da304fdee9 offset = 44](this = ...

将Node.js报告写入文件:report.20200222.103313.16.0.001.json Node.js报告完成

DockerFile

阶段1:构建

FROM节点:12-alpine AS构建 WORKDIR / usr / src / sample COPY package.json /usr/src/sample/package.json 运行cd / usr / src / sample 运行npm安装 复制。 / usr / src / sample

运行npm运行构建登录

第2阶段:运行

从FROM Nginx:1.17.1-高山 复制--from = build / usr / src / sample / dist / myapp / usr / share / nginx / html / dv / sampleapp /

在package.json文件中,我有 “ build-login”:“ npm run build-memory && ng build login --prod --verbose”, “ build-memory”:“节点--max_old_space_size = 8192 ./node_modules/@angular/cli/bin/ng”,

2 个答案:

答案 0 :(得分:2)

尝试此DockerFile:

# Stage 1
FROM node:12-alpine AS build 
WORKDIR /usr/src/sample 
COPY package.json .
# no need for this since you put your workdir path
# RUN cd /usr/src/sample 
RUN npm install 
COPY . .

# Stage 2
FROM nginx:1.17.1-alpine 
COPY --from=build /usr/src/sample/dist/myapp /usr/share/nginx/html/

如果可以的话,将图像版本保持最新(node:13.8-alpine和nginx:1.17.8-alpine)会更好。 另外,如果您可以在本地运行自己的构建cmds(尤其是生产构建),以查看其是否正常运行或崩溃。

答案 1 :(得分:0)

我建议使用此Dockerfile:

# stage 1
FROM 12-alpine as builder

WORKDIR /usr/src/sample
COPY .  /usr/src/sample/
RUN npm install @angular/cli -g
RUN npm i
# A head-of-time compilation
RUN ng build --prod

# stage 2
FROM nginx:1.17.1-alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=builder /usr/src/sample/dist/myapp /usr/share/nginx/html/
CMD ["nginx", "-g", "daemon off;"]