为什么我无法将应用成功部署到Docker

时间:2019-05-08 10:12:07

标签: docker

我尝试将我的应用程序部署到Docker。但是我在此过程中遇到了一些问题。

这是我的文件夹结构:

  • 控件
  • 模型
  • 语义UI大师
  • src
  • Dockerfile
  • .dockerignore
  • 打包json

这是我在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

有什么想法和建议吗?非常感谢你们!

3 个答案:

答案 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是由于内存不足引起的。

您可以尝试做什么?

  1. 在docker构建之外运行npm install,然后仅复制依赖项
  2. 按照docs中的说明增加Docker桌面运行时内存:首选项->高级->内存