卡在 v2.9.0.beta1 –禁用 Hook 后现在运行 3.4.0.beta4-dev:我如何锁定到稳定版本?

我有一个长期存在的 Discourse 安装问题,它一直停留在 v2.9.0.beta1 版本——由于个人原因,我多年来一直无法解决。当时,似乎不可能升级到 v2.9.0.beta2。最近,在排查一个重建问题时,我注释掉了 app.yml 中的某些钩子(特别是那些强制进行标签签出的钩子),如下所示:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
    - exec:
        cd: $home
        cmd:
          # - git fetch --depth=1 origin tag v2.9.0.beta2 --no-tags
          # - git checkout v2.9.0.beta2
          - echo "Skipping version upgrade hook"

重建后,我的实例意外更新到了 3.4.0.beta4-dev。虽然我很高兴解决了这个问题,但现在我希望系统能够继续遵循 3.4.0 beta 流,直到有稳定的 3.4.x 版本可用——一旦可用,就将其锁定到该稳定版本,这样它就不会自动升级到进一步的 beta 或开发版本。

一旦稳定版本可用,是否有正确的方法将其“固定”或锁定到稳定版本,而无需在每次重建时进行回滚或手动干预?

任何指导或最佳实践都将不胜感激!

您可以查看此指南:

tests-passed 改为 stable 在你的 app.yml 中。如果你的 yml 文件中没有这个,你可以查看 samples 目录。

1 个赞

好的,所以我有:

  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

我已将其更新为:

  ## Which Git revision should this container use? (default: tests-passed)
  version: stable

重建后,系统现在是:3.5.0.beta1-dev

这似乎更奇怪/特别了。 :thinking:

看起来你在重建后将版本改为了稳定版。你现在已经超越了稳定版,所以你需要将其更改为 beta 或 tests-passed,直到下一个稳定版发布(而且因为上周已经发布了一个,所以还需要相当长的时间(通常是 8-10 个月))。

1 个赞

不,很遗憾我没有……我对此100%确定,它是在3.4.0.beta4-dev上,然后我更改了app.yml,然后进行了重建。之后就出现了3.5.0.beta1-dev。这就是100%遵循的路径……为了说清楚,我对此毫无疑问。在执行我所记录的操作之前,我确实验证了这些事情。

带有 tests-passed 的那一行是否以 # 开头?

编辑器截图:

它被注释掉了,所以你放什么并不重要,默认是测试通过。

当你重建以重建到最新的测试通过时

再次感谢您的帮助 @pfaffman。总结一下我目前的理解:

  • 我们的实例运行的是 3.4.0.beta4-dev,这不被认为是稳定版本。
  • 当我将配置更新为使用 version: stable(默认值已注释掉)时,我期望未来的重建会将实例锁定在稳定分支。但是,因为我们已经在使用测试版,所以更新继续进行——结果是 3.5.0.beta1-dev
  • 似乎在已经超过稳定标签后切换到 version: stable 不会触发回滚;它只是意味着如果我们处于稳定版本或低于稳定版本,它会将我们固定在稳定版本而不是跟踪测试版。

这是正确的吗?

此外,您能否澄清一下推荐的流程是什么,以确保将来我们不会意外地跟随测试版频道?具体来说:

  1. version: stable 作为活动配置就足以确保,当有稳定版本可用时,我们的重建将锁定在该版本中——前提是我们到达稳定版本时还没有超过它?
  2. 是否有任何额外的步骤或清理任务(例如删除或修改任何其他配置元素)是我们应该执行的,以避免无意中更新到测试版/开发版本?

我非常希望尽快锁定到一个稳定版本,但不想再次出现这种情况……

嗯。在我看来并非如此:

哎呀!也许我用手机看太快了。我无法解释我怎么会错过那个,也无法解释该网站现在怎么运行的是 3.5.0.beta1-dev。

2 个赞

您好,

在经历了与从 postgres 13 迁移到 15 相关的 3.4.0.beta4-dev 更新的挫折后,我设法恢复了一个可用的 3.5.0.beta1-dev 版本!

现在,在仪表板中,有一个新版本:

已安装             最新
3.5.0.beta1-dev       3.5.0.beta1
(b37b51d15f)

但在“更新”页面,我们看到:

名称                   提交哈希          上次更新时间  最新版本    状态
新版本可用! v3.4.0.beta4 +182    43 分钟前   v3.5.0.beta1 +8   更新

现在更新安全吗?

提前感谢您。

1 个赞