pm2脚本执行路径不正确,与ecosystem.config.js

时间:2018-11-23 06:32:26

标签: node.js deployment 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' }
    }
}
};

部署应用程序时,我希望看到两个过程-一个称为“生产”和一个称为“登台”。它们从相同的存储库运行代码,但是从不同的分支运行代码。

我确实看到了两个过程,但是,当我运行pm2 desc production时,我可以看到脚本路径为/home/username/sites/WebsiteStaging/source/server.js。根据配置文件,此路径应为/home/username/sites/Website/source/server.js

我尝试将脚本设置为./server.js并使用cwd参数,但是结果是相同的。

我正在使用的部署命令是pm2 deploy productionpm2 deploy staging,并且我已经验证了服务器上同时存在WebsiteWebsiteStaging文件夹。

我这里缺少什么吗?为什么会默认使用这样的暂存文件夹?

2 个答案:

答案 0 :(得分:0)

对我有用的是删除pm2应用程序并启动它。

  1. pm2 delete production
  2. pm2 start production

我运行pm2 desc production时,发现脚本路径不正确,除了上面的内容外,我似乎没有做任何纠正该路径的事情。

答案 1 :(得分:0)

我遇到了同样的问题。 似乎是因为旧的 dump.pm2 在对 ecosystem.config.js 进行更改后没有更新。

更新启动脚本解决了问题

pm2 save
pm2 unstartup
pm2 startup