Я использую PM2 для развертывания / управления процессами, и приложение обрабатывает множество задач DNS, поэтому проще всего запустить приложение разработки с удаленного сервера, а затем выполнить Rsyncing или SFTPing при сохранении (все еще разбираясь с этим) .
В этом случае идея заключается в том, чтобы приложение dev находилось на той же виртуальной машине, что и производственное приложение. Однако структура файла конфигурации развертывания PM2 (ecosystem.config.js
), по-видимому, не делает это возможным, поскольку, когда я запускаю pm2 deploy development
, версия для разработки обгоняет производственный процесс на виртуальной машине.
Вот что у меня есть:
module.exports = {
apps: [
{
name: "APP NAME",
script: "app.js",
env_development: {
NODE_ENV: "development",
...
},
env_production: {
NODE_ENV: "production",
...
}
}
],
deploy: {
production: {
user: "user",
host: ["123.123.123.123"],
ref: "origin/master",
repo: "git@gitlab.com:me/repo.git",
path: "/var/www/app",
"post-deploy":
"npm install && pm2 reload ecosystem.config.js --env production"
},
development: {
user: "user",
host: ["123.123.123.123"],
ref: "origin/master",
repo: "git@gitlab.com:me/repo.git",
path: "/var/www/app-dev",
"post-deploy":
"npm install && pm2 reload ecosystem.config.js --env development"
}
}
};
Есть какие-нибудь мысли о том, как лучше всего это сделать?