【问题标题】:Docker nodejs build works locally but hangs on serverDocker nodejs构建在本地工作但挂在服务器上
【发布时间】:2017-06-30 23:55:15
【问题描述】:

我在 docker 中构建了一个节点应用程序,它可以在我的本地机器(mint 18)上完美地构建和运行。但是,当我将相同的内容上传到 Digital Ocean 的 Docker 液滴(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 新手,只用了几天,所以这可能很明显。

【问题讨论】:

    标签: node.js docker


    【解决方案1】:

    详情

    我尝试通过 docker-compose 将 NodeJS 应用程序部署到 Digital Ocean droplet。我的应用程序每次在构建步骤时都会挂起。但是当我在本地执行docker-compose up --build时,我没有问题。

    附:我的 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】:

      您可能缺少一些交换空间!

      我使用 docker 的 node 来构建 react 应用,构建后对服务器的要求非常低,512MB 或 1G 足以满足测试环境甚至一些小型生产环境的需求。

      虽然节点在构建期间需要更多内存,并且数字海滴没有交换空间,但是it is easy to work around

      【讨论】:

        【解决方案3】:

        如果您查看issue 1554,可能是资源问题。

        内存不足或磁盘不足都会导致此类错误消息。

        Digital Ocean tutorial 提到基本的 Droplet 只有 512MB 磁盘空间。也许你的 Dockerfile 项目的组合镜像太重要了。

        【讨论】:

        • 谢谢。就是这样
        • 我通过运行 byobu 进行了测试,可以清楚地看到我的内存用完了
        猜你喜欢
        • 2020-12-22
        • 1970-01-01
        • 2018-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多