【问题标题】:Node.js app suddenly fails on local DockerNode.js 应用程序在本地 Docker 上突然失败
【发布时间】:2015-10-01 11:34:38
【问题描述】:

我有一个从this 克隆的非常简单的node.js 应用程序,唯一的补充是它连接到一个RDS 实例。它在本地运行良好(带有boot2docker 的OSX),当我将它放在Docker 容器中时运行了几分钟,然后突然之间,页面不再呈现,我从服务器得到一个空响应。容器仍在运行,但我在日志中收到一条奇怪的消息。各种文件如下。

我在这里错过了什么?

Docker 运行命令 docker run -p 49161:3000 -d <image name>

Dockerfile

FROM    centos:centos6

# Enable EPEL for Node.js
RUN     rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# Install Node.js and npm
# RUN yum -y install node
RUN yum install -y npm
RUN npm install -g express-generator@4
RUN npm install supervisor -g
RUN npm install pg --save
RUN npm install winston --save


# Bundle app source
COPY . /
# Install app dependencies
RUN npm install

EXPOSE  3000
CMD ["npm", "start"]

Docker 日志

crashing child
Error reading path: /proc/1/task/1/cwd/proc/1/map_files
Error reading path: /proc/1/task/1/cwd/proc/10/map_files
Error reading path: /proc/1/task/1/cwd/proc/self/map_files
Error reading path: /proc/1/task/1/root/proc/10/map_files
Error reading path: /proc/1/task/1/root/proc/1/map_files
Error reading path: /proc/1/task/1/root/proc/self/map_files
Error reading path: /proc/1/task/5/cwd/proc/1/map_files
Error reading path: /proc/1/task/5/cwd/proc/10/map_files
Error reading path: /proc/1/task/5/cwd/proc/self/map_files
Error reading path: /proc/1/task/5/root/proc/1/map_files
Error reading path: /proc/1/task/5/root/proc/10/map_files
Error reading path: /proc/1/task/5/root/proc/self/map_files
Error reading path: /proc/1/task/6/cwd/proc/10/map_files
Error reading path: /proc/1/task/6/cwd/proc/1/map_files
Error reading path: /proc/1/task/6/cwd/proc/self/map_files
Error reading path: /proc/1/task/6/root/proc/1/map_files
Error reading path: /proc/1/task/6/root/proc/10/map_files
Error reading path: /proc/1/task/6/root/proc/self/map_files
Error reading path: /proc/1/task/8/cwd/proc/1/map_files
Error reading path: /proc/1/task/8/cwd/proc/10/map_files
Error reading path: /proc/1/task/8/cwd/proc/self/map_files
Error reading path: /proc/1/task/8/root/proc/1/map_files
Error reading path: /proc/1/task/8/root/proc/10/map_files
Error reading path: /proc/1/task/8/root/proc/self/map_files
Error reading path: /proc/1/task/9/cwd/proc/1/map_files
Error reading path: /proc/1/task/9/cwd/proc/10/map_files
Error reading path: /proc/1/task/9/cwd/proc/self/map_files
Error reading path: /proc/1/task/9/root/proc/1/map_files
Error reading path: /proc/1/task/9/root/proc/10/map_files
Error reading path: /proc/1/task/9/root/proc/self/map_files
Error reading path: /proc/1/task/7/cwd/proc/1/map_files
Error reading path: /proc/1/task/7/cwd/proc/10/map_files
Error reading path: /proc/1/task/7/cwd/proc/self/map_files
Error reading path: /proc/1/task/7/root/proc/1/map_files
Error reading path: /proc/1/task/7/root/proc/10/map_files
Error reading path: /proc/1/task/7/root/proc/self/map_files
Error reading path: /proc/10/task/11/cwd/proc/1/map_files
Error reading path: /proc/10/task/11/cwd/proc/10/map_files
Error reading path: /proc/10/task/11/cwd/proc/self/map_files
Error reading path: /proc/10/task/11/root/proc/10/map_files
Error reading path: /proc/10/task/11/root/proc/1/map_files
Error reading path: /proc/10/task/11/root/proc/self/map_files
Error reading path: /proc/10/task/13/cwd/proc/1/map_files
Error reading path: /proc/10/task/13/cwd/proc/10/map_files
Error reading path: /proc/10/task/13/cwd/proc/self/map_files
Error reading path: /proc/10/task/13/root/proc/1/map_files
Error reading path: /proc/10/task/13/root/proc/10/map_files
Error reading path: /proc/10/task/13/root/proc/self/map_files
Error reading path: /proc/10/task/10/cwd/proc/1/map_files
Error reading path: /proc/10/task/10/cwd/proc/10/map_files
Error reading path: /proc/10/task/10/cwd/proc/self/map_files
Error reading path: /proc/10/task/10/root/proc/10/map_files
Error reading path: /proc/10/task/10/root/proc/1/map_files
Error reading path: /proc/10/task/10/root/proc/self/map_files
Error reading path: /proc/10/task/14/cwd/proc/1/map_files
Error reading path: /proc/10/task/14/cwd/proc/10/map_files
Error reading path: /proc/10/task/14/cwd/proc/self/map_files
Error reading path: /proc/10/task/14/root/proc/1/map_files
Error reading path: /proc/10/task/14/root/proc/10/map_files
Error reading path: /proc/10/task/14/root/proc/self/map_files
Error reading path: /proc/10/task/16/cwd/proc/1/map_files
Error reading path: /proc/10/task/16/cwd/proc/10/map_files
Error reading path: /proc/10/task/16/cwd/proc/self/map_files
Error reading path: /proc/10/task/16/root/proc/10/map_files
Error reading path: /proc/10/task/16/root/proc/1/map_files
Error reading path: /proc/10/task/16/root/proc/self/map_files
Error reading path: /proc/10/task/15/cwd/proc/1/map_files
Error reading path: /proc/10/task/15/cwd/proc/10/map_files
Error reading path: /proc/10/task/15/cwd/proc/self/map_files
Error reading path: /proc/10/task/15/root/proc/1/map_files
Error reading path: /proc/10/task/15/root/proc/10/map_files
Error reading path: /proc/10/task/15/root/proc/self/map_files
Error reading path: /proc/self/task/10/cwd/proc/1/map_files
Error reading path: /proc/self/task/10/cwd/proc/10/map_files
Error reading path: /proc/self/task/10/cwd/proc/self/map_files
Error reading path: /proc/self/task/10/root/proc/1/map_files
Error reading path: /proc/self/task/10/root/proc/10/map_files
Error reading path: /proc/self/task/10/root/proc/self/map_files
Error reading path: /proc/self/task/11/cwd/proc/1/map_files
Error reading path: /proc/self/task/11/cwd/proc/10/map_files
Error reading path: /proc/self/task/11/cwd/proc/self/map_files
Error reading path: /proc/self/task/11/root/proc/10/map_files
Error reading path: /proc/self/task/11/root/proc/1/map_files
Error reading path: /proc/self/task/11/root/proc/self/map_files
Error reading path: /proc/self/task/13/cwd/proc/1/map_files
Error reading path: /proc/self/task/13/cwd/proc/10/map_files
Error reading path: /proc/self/task/13/cwd/proc/self/map_files
Error reading path: /proc/self/task/13/root/proc/1/map_files
Error reading path: /proc/self/task/13/root/proc/10/map_files
Error reading path: /proc/self/task/13/root/proc/self/map_files
Error reading path: /proc/self/task/14/cwd/proc/1/map_files
Error reading path: /proc/self/task/14/cwd/proc/10/map_files
Error reading path: /proc/self/task/14/cwd/proc/self/map_files
Error reading path: /proc/self/task/14/root/proc/1/map_files
Error reading path: /proc/self/task/14/root/proc/10/map_files
Error reading path: /proc/self/task/14/root/proc/self/map_files
Error reading path: /proc/self/task/15/cwd/proc/1/map_files
Error reading path: /proc/self/task/15/cwd/proc/10/map_files
Error reading path: /proc/self/task/15/cwd/proc/self/map_files
Error reading path: /proc/self/task/15/root/proc/1/map_files
Error reading path: /proc/self/task/15/root/proc/10/map_files
Error reading path: /proc/self/task/15/root/proc/self/map_files
Error reading path: /proc/self/task/16/cwd/proc/1/map_files
Error reading path: /proc/self/task/16/cwd/proc/10/map_files
Error reading path: /proc/self/task/16/cwd/proc/self/map_files
Error reading path: /proc/self/task/16/root/proc/1/map_files
Error reading path: /proc/self/task/16/root/proc/10/map_files
Error reading path: /proc/self/task/16/root/proc/self/map_files

app.js 文件

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('./utils/logger');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./server/routes/index');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
//app.use(logger('dev'));
app.use(require('morgan')({ "stream": logger.stream }));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, './client', 'public')));

app.use('/', routes);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});


module.exports = app;

更新 1 有趣...看起来容器在约 15 分钟后不再运行。当我获得Empty response 页面时它正在运行,但现在我可以确认容器不再运行。如果重新执行docker run,我确实会看到页面加载短暂,并且容器已启动。

【问题讨论】:

    标签: javascript node.js docker


    【解决方案1】:

    我发布此内容是为了帮助遇到此问题的其他人。本质上,修改我的Dockerfile 解决了这个问题。显然,原始容器中的内存非常高,导致容器崩溃。我仍然不清楚为什么会发生这种情况,我只使用了大部分原始Dockerfile,因为这是我在 Docker 示例中找到的。

    修改后的 Dockerfile

    FROM node:0.10-onbuild
    
    RUN npm install supervisor -g
    RUN npm install pg --save
    
    EXPOSE 3000
    

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2022-06-28
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多