BBa*_*les 5 deployment node.js pm2
我的ecosystem.config.js看起来像这样:
module.exports = {
apps: [{
name: 'production',
script: '/home/username/sites/Website/source/server.js',
env: { NODE_ENV: 'PRODUCTION' },
args: '--run-server'
}, {
name: 'staging',
script: '/home/username/sites/WebsiteStaging/source/server.js',
env: { NODE_ENV: 'STAGING' },
args: '--run-server'
}],
deploy: {
production: {
user: 'username',
host: ['XXX.XXX.XX.XXX'],
ref: 'origin/production',
repo: 'git@github.com:ghuser/Website.git',
path: '/home/username/sites/Website',
'post-deploy': 'npm install && pm2 reload ecosystem.config.js --only production',
env: { NODE_ENV: 'PRODUCTION' }
},
staging: {
user: 'username',
host: ['XXX.XXX.XX.XXX'],
ref: 'origin/staging',
repo: 'git@github.com:ghuser/Website.git',
path: '/home/username/sites/WebsiteStaging',
'post-deploy': 'npm install && pm2 reload ecosystem.config.js --only staging',
env: { NODE_ENV: 'STAGING' }
}
}
};
Run Code Online (Sandbox Code Playgroud)
当我部署应用程序时,我希望看到两个进程 - 一个名为'production',一个名为'staging'.这些代码来自同一个repo,但来自不同的分支.
我确实看到了两个进程,但是,当我运行时,pm2 desc production我可以看到脚本路径是/home/username/sites/WebsiteStaging/source/server.js.此路径应符合/home/username/sites/Website/source/server.js配置文件.
我已经尝试将脚本设置为./server.js并使用cwd参数,但结果是一样的.
我正在使用的部署命令是pm2 deploy production,pm2 deploy staging并且我已经验证我的服务器上存在Website和WebsiteStaging文件夹.
这里有什么我想念的吗?为什么它会默认为这样的暂存文件夹?
对我有用的是删除 pm2 应用程序并启动它。
pm2 delete productionpm2 start production当我运行时pm2 desc production,我发现脚本路径不正确,除了上述之外,我所做的任何事情似乎都无法纠正该路径。