2016-08-30 80 views
0

我正在设置我的后端,这是一个在Docker容器内部运行的NodeJS应用程序。在Docker容器内部扩展节点实例

在我的app.js检查它正在运行的VM之前,为x个可用内核启动x个实例。

由于它现在在Docker容器内部运行,我应该离开代码,还是由docker管理它本身,并且节点应用程序能够看到可用的内核数量?

这里是我的代码与

#!/usr/bin/env node 
var debug = require('debug')('node-exampleapp'); 

var cluster = require('cluster') 

if (cluster.isMaster) { 
    // Count the machine's CPUs 
    var cpuCount = require('os').cpus().length; 
    // Create a worker for each CPU 
    for (var i = 0; i < cpuCount; i += 1) { 
     cluster.fork(); 
     console.log('Worker ' + i + 'created'); 
} 

    // Listen for dying workers 
    cluster.on('exit', function() { 
    cluster.fork(); 
}); 

} else { 
    var app = require('../app'); 
    app.set('port', process.env.PORT || 3000); 
    var server = app.listen(app.get('port'), function() { 
    debug('Express server listening on port ' + server.address().port); 
}); 

} 

回答

0

工作留在代码中。到目前为止,为您的应用程序可以告诉,它仍然是在主机上运行,​​并且可以看到机器的硬件功能。