Docker nodejs构建在本地工作但挂起在服务器

时间:2017-02-13 04:11:01

标签: node.js docker

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

PS:我是Docker的新手,只使用了几天,所以这可能是非常明显的。

3 个答案:

答案 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

相关问题