我在docker中构建了一个节点应用程序,它在我的本地机器上构建并运行完美(薄荷18)。但是当我将相同的数据上传到Digital ocean的Docker droplet(ubuntu 16.04)时,它会在构建过程中挂起并最终抛出错误。这发生在每次完全相同的地方。
这是最后一行&我在构建时可以看到错误消息..
npm info lifecycle app@0.0.1~preinstall: app@0.0.1
Killed
The command '/bin/sh -c npm install' returned a non-zero code: 137
答案 0 :(得分:2)
如果查看issue 1554,可能会出现资源问题。
低内存或低磁盘都会导致出现此类错误消息。
这个Digital Ocean tutorial提到基本的Droplet只有512MB的磁盘空间。也许你的Dockerfile项目的组合图像太重要了。
答案 1 :(得分:1)
我试图通过docker-compose将NodeJS应用程序部署到Digital Ocean Drop。我的应用程序每次在构建步骤时都挂起。但是当我在本地执行docker-compose up --build
时,我没有遇到任何问题。
P.S。我的DO小滴上有1 Gb RAM内存。
因此,我刚刚将 .dockerignore (source)添加到了NodeJS项目
# Logs
logs
*.log
# Runtime data
pids
*.pid
*.seed
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# node-waf configuration
.lock-wscript
# Compiled binary addons (http://nodejs.org/api/addons.html)
build/Release
# Dependency directory
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
node_modules
server/*.spec.js
kubernetes
答案 2 :(得分:0)
您可能缺少一些交换空间!
我使用docker的节点构建反应应用程序,构建后的服务器要求非常低,对于测试环境甚至某些小型生产环境,512MB或1G足够了。
尽管,节点在构建期间需要更多的内存,并且数字海洋小滴没有交换空间,但是it is easy to work around。