【问题标题】:With Capistrano, how to rollback to a specific release?使用 Capistrano,如何回滚到特定版本?
【发布时间】:2010-12-05 16:17:08
【问题描述】:

使用 Capistrano,如何回滚到特定版本?

我的服务器文件夹有一个 /release 文件夹,我怎样才能回滚到一个特定的文件夹?

我是否可以在本地获取计算机上的版本列表?

我正在使用 GIT,但这不起作用:

cap deploy -s revision:HASH

【问题讨论】:

    标签: capistrano


    【解决方案1】:

    更新 答案写在 capistrano 版本 2 的时代。使用当前的 capistrano 版本 3,您可以通过使用实现相同的目的

    cap production deploy:rollback ROLLBACK_RELEASE=2010123
    

    详情请咨询Capistrano documentation

    感谢@codenoob 指出这一点!


    旧版本

    以下应该有效:

    cap deploy:rollback -s previous_release=/path/to/release/on/server
    


    例子:

    假设您已将应用部署到/srv/some_app,并且您具有以下版本/目录结构:

    |- srv
       |- some_app
          |- shared
          |- current -> /srv/some_app/releases/2012123
          |- releases
             |- 2010123
             |- 2011123
             |- 2012123
    

    如果您现在想从当前 (2012123) 版本返回到 2010123 版本,您可以使用

    cap deploy:rollback -s previous_release=/srv/some_app/releases/2010123
    

    【讨论】:

    【解决方案2】:

    另一种选择是

    $ cap deploy:rollback ROLLBACK_RELEASE=20160614133327
    

    来自http://capistranorb.com/documentation/getting-started/rollbacks/#

    【讨论】:

      【解决方案3】:

      Capistrano 按日期/时间命名发布目录。

      从 capistrano shell,您可以连接到您正在部署的所有机器,并从那里检查它们:

      $ cap shell
      # Show them - it might be a long list
      cap> ls  /mnt/html/deployed/releases/
       ** [out :: hostname.example.com] 20110521130031
      # how many releases on each machine?
      cap> ls  /mnt/html/deployed/releases/ |wc -l
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-04
        • 2014-01-28
        • 2021-11-06
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        • 2017-07-26
        相关资源
        最近更新 更多