我尝试将我的应用程序部署到Docker。但是我在此过程中遇到了一些问题。
这是我的文件夹结构:
这是我在Dockerfile中的代码:
FROM node:10.15.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . .
RUN npm cache clean --force && npm install
EXPOSE 3000
CMD [ "node", "index.js" ]
我收到此错误:
---> Running in ff6c4bf4ce8e
npm WARN using --force I sure hope you know what you are doing.
The command '/bin/sh -c npm cache clean --force && npm install' returned a non-zero code: 137
有什么想法和建议吗?非常感谢你们!
答案 0 :(得分:2)
错误代码137
表示您有OOM个问题。发生这种情况是因为MacOS对Docker施加了RAM限制,而Linux使得容器可以吃as much RAM as it wants。
由于npm install
会消耗大量资源,因此您必须在Docker advanced settings中增加Docker的内存限制。
其他参考:
答案 1 :(得分:1)
尝试在“ dct = dict(zip(it := iter(sample_list), it))
”之后的Dockerfile中添加“ RUN ls
”行,并使用标志“ -no-cache ”重建映像,检查控制台输出查看您的文件是否已复制到图像中。如果没有打开 .dockerignore 文件,以查看您是忽略“ package.json ”文件还是要复制的任何文件。
答案 2 :(得分:1)
大多数人在互联网上搜索时说npm错误137是由于内存不足引起的。
您可以尝试做什么?