如何使用 PM2 将一个特定的 nodeJS 应用程序部署到一个特定的环境?
How can I deploy only one specific nodeJS app to one specific environment with PM2?
我在 Digital Ocean 上部署了两个 nodejs 应用程序,我正在学习使用 PM2。
我想知道如何单独更新我的应用程序(服务)。
目前我的 pm2 配置如下所示:
// ecosystem.config.js
module.exports = {
apps: [
{
name: `app1`,
script: './app1.js',
// ...
},
{
name: `app2`,
script: './app2.js',
// ...
}
],
deploy: {
production: {
key: '',
user: 'admin',
host: '',
ref: '',
repo: '',
path: '/home/admin/app/prod',
'post-deploy': './deploy.sh production'
},
development: {
key: '',
user: 'admin',
host: '',
ref: '',
repo: '',
path: '/home/admin/app/development',
'post-deploy': './deploy.sh development'
},
}
}
我可以按环境部署,例如 pm2 deploy production
。
但是,我可以做类似 pm2 deploy development app2
的事情来只更新 app2 吗?
你有很多方法可以做到这一点,对我来说,我总是在客户端文件夹和服务器文件夹中创建生态系统文件,然后在根文件夹中创建发布生态系统文件,例如:
- 客户
- ecosystem.config.js
- 服务器
- ecosystem.config.js
- ecosystem.config.js
根生态系统文件如:
deploy: {
frontend: {
...other,
path: '/app/easyv_spaceship',
'post-deploy': 'cd ./client && npm install && npm run build'
},
backend: {
...other,
path: '/app/easyv_spaceship',
'post-deploy': 'cd ./server && npm install && npm run tsc && pm2 startOrRestart ecosystem.config.js --env production'
}
}
希望对您有所启发。
我在 Digital Ocean 上部署了两个 nodejs 应用程序,我正在学习使用 PM2。 我想知道如何单独更新我的应用程序(服务)。
目前我的 pm2 配置如下所示:
// ecosystem.config.js
module.exports = {
apps: [
{
name: `app1`,
script: './app1.js',
// ...
},
{
name: `app2`,
script: './app2.js',
// ...
}
],
deploy: {
production: {
key: '',
user: 'admin',
host: '',
ref: '',
repo: '',
path: '/home/admin/app/prod',
'post-deploy': './deploy.sh production'
},
development: {
key: '',
user: 'admin',
host: '',
ref: '',
repo: '',
path: '/home/admin/app/development',
'post-deploy': './deploy.sh development'
},
}
}
我可以按环境部署,例如 pm2 deploy production
。
但是,我可以做类似 pm2 deploy development app2
的事情来只更新 app2 吗?
你有很多方法可以做到这一点,对我来说,我总是在客户端文件夹和服务器文件夹中创建生态系统文件,然后在根文件夹中创建发布生态系统文件,例如:
- 客户
- ecosystem.config.js
- 服务器
- ecosystem.config.js
- ecosystem.config.js
根生态系统文件如:
deploy: {
frontend: {
...other,
path: '/app/easyv_spaceship',
'post-deploy': 'cd ./client && npm install && npm run build'
},
backend: {
...other,
path: '/app/easyv_spaceship',
'post-deploy': 'cd ./server && npm install && npm run tsc && pm2 startOrRestart ecosystem.config.js --env production'
}
}
希望对您有所启发。