Я попытался установить PM2 на свое приложение, и оно отлично работает на localhost. Однако проблема возникает, когда я перемещаю приложение в контейнер docker и пытаюсь запустить его на компьютере Linux.
Я запускаю команду npm run production, которая выполняет следующий код:
pm2 start ecosystem.config.js --env production --no-autorestart
После этого в командной строке я вижу, как PM2 загружается и запускает мое приложение на всех доступных ядрах.
app | [PM2] PM2 Successfully daemonized
app | [PM2][WARN] Applications App not running, starting...
app | [PM2] App [App] launched (2 instances)
app | ┌─────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
app | │ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
app | ├─────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
app | │ 0 │ App │ default │ 1.0.0 │ cluster │ 36 │ 0s │ 0 │ online │ 0% │ 38.0mb │ root │ disabled │
app | │ 1 │ App │ default │ 1.0.0 │ cluster │ 43 │ 0s │ 0 │ online │ 0% │ 25.0mb │ root │ disabled │
app | └─────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
И затем возвращается сообщение:
app exited with code 0
Весь процесс повторяется снова и снова и снова ... Я пытался запустить его на 'cluster_mode' на 'fork', я пытался запустить его с --no-autorestart, но он все еще продолжает перезапускаться.
Я буквально понятия не имею, что я делаю неправильно?
@@ EDIT, добавлено ecosystem.config. js
module.exports = {
apps : [{
name: 'App',
script: './build/server/index.js',
// Options reference: https://pm2.keymetrics.io/docs/usage/application-declaration/
exec_mode: 'cluster_mode',
args: 'none',
instances: os.cpus().length,
autorestart: false,
watch: false,
// max_memory_restart: '3G',
env: {
NODE_ENV:'development',
},
env_production: {
NODE_ENV:'production',
}
}],
deploy : {
production : {
user : 'szygendab',
host : '212.83.163.1',
ref : 'origin/master',
repo : 'git@github.com:repo.git',
path : '/var/www/production',
'post-deploy' : 'npm install && pm2 reload ecosystem.config.js --env production'
}
}
};