【问题标题】:Rollback pm2 deploy to specific commit回滚 pm2 部署到特定提交
【发布时间】:2025-12-01 16:10:01
【问题描述】:

我想知道如何使用 pm2 来“回滚”最近的代码更改。

我们团队的变更流程要求我们制定“回滚”计划,以防部署出现问题。我们通常只记录回滚计划将是 git checkout CHANGESET 以返回到以前版本的代码,同时我们修复问题并在开发中测试它。

如何使用 pm2 实现类似的回滚?我们新的部署过程是pm2 deploy production,我的生态系统.json 包含在下面。目前 UAT 和生产都使用 origin/master 作为“参考”。我在想也许可以使用标签或其他东西,但不确定最好的方法。也许我应该在这些罕见的回滚情况下继续做git checkout COMMIT,但寻找其他想法。

{
  "apps": [{ blah... }],
  "deploy": {
    "UAT": {
    "user": "USER_HERE",
    "host": ["IP_HERE", "IP_HERE"],
    "ref": "origin/master",
    "repo": "git@github.com:USER/REPO.git",
    "path": "/home/USER/node",
    "post-deploy": "bash ./update.sh"
  },
  "production": {
    "user": "USER_HERE",
    "host": ["IP_HERE", "IP_HERE"],
    "ref": "origin/master",
    "repo": "git@github.com:USER/REPO.git",
    "path": "/home/USER/node",
    "post-deploy": "bash ./update.sh"
  }
}

【问题讨论】:

    标签: node.js git deployment pm2


    【解决方案1】:

    工具pm2 deploy 提供命令revert。所以,你可以这样做:

    pm2 deploy ecosystem.json revert
    

    这会将您的应用“回滚”到之前的部署。您还可以指定上次部署恢复到多少。

    另见命令[ref]listcurrprev结合使用:

    https://github.com/Unitech/PM2/blob/0.14.7/ADVANCED_README.md#deployment-options

    【讨论】:

    • pm2 部署生态系统.json 环境恢复
    最近更新 更多