Kiwi TCMS升级到最新后如何恢复到之前的版本

问题描述

我一直将 Kiwi TCMS 作为 Docker 容器运行,运行的版本是 9.0.1。现在已经看到最新的10.0版本了,所以想更新一下。不确定这不会破坏现有数据。

所以,我已经按照它获取数据库上传文件备份, https://kiwitcms.org/blog/atodorov/2018/07/30/how-to-backup-docker-volumes-for-kiwi-tcms/

但是,如果最新版本无法按预期运行或出现任何问题,我该如何降级到旧版本映像?我发现了 docker 标签概念,但不知道如何应用它?

您能否确认以下内容会恢复到旧版本?

  1. 恢复已备份的数据库文件上传文件
  2. 将 docker-compose 文件中的图像更改为较旧的图像?就像我的情况一样,我可能想要拉取 9.0.1 版映像,因此更改 映像:kiwitcms/kiwi:9.0.1 是否有效?
web:
    container_name: kiwi_web
    depends_on:
        - db
    restart: always
    image: kiwitcms/kiwi:9.0.1

或者我应该如何标记版本9.0.1,然后恢复标记的版本,以防恢复最新升级

解决方法

但是,如果最新版本无法按预期运行或出现任何问题,我该如何降级到旧版本映像?我发现了 docker 标签概念,但不知道如何应用它?

最简单的方法是销毁您不满意的实例,从头开始创建一个新实例(使用 v9.0.1)并从备份中恢复文件/数据库。我假设您在升级前进行了备份。

图片:kiwitcms/kiwi:9.0.1 可以用吗?

理论上可行,但实际上行不通,因为 Kiwi TCMS 上游不提供带有版本标记的容器映像。参见 https://kiwitcms.org/#subscriptions,行 Only latest releasesVersioned releases from kiwitcms/version

或者我应该如何标记版本 9.0.1

根据您已经完成或未完成的操作,这可能是可能的,也可能是不可能的:

  • 执行 docker images,如果您看到类似的内容
kiwitcms/kiwi                                              latest    9f23186803d5   8 weeks ago     736MB
kiwitcms/kiwi                                              <no tag>    <another image hash>   ...

这意味着 latest 指向 v10,而未标记的图像是您之前的图像,在您的情况下为 9.0.1。然后您可以使用 docker tag 命令来标记它并在 docker-compose.yml 文件中使用它。

  • 如果您只看到 kiwitcms/kiwi:latest 图像,这意味着您已从系统中删除了前一张图像。您无权访问它。您的选择是:
    1. 使用相同的 git 标签从源代码重新构建它或
    2. 如果需要恢复到旧版本,请购买订阅以访问私有 kiwitcms/version 存储库。

作为一种好的做法,您可以遵循以下 2 条建议:

  1. 使用“从备份恢复”技术或“克隆 docker 镜像”,以便您升级和试验不同的 Kiwi TCMS 实例,而不是您使用的主要实例。如果您对最新版本感到满意,那么您可以升级主实例。请注意,这里所说的“克隆 docker 镜像”是指使正在运行的镜像/容器文件在不同的机器上或可能在同一台主机上可用,但启动辅助 Kiwi TCMS 实例 + 辅助数据库。 ATM 我不确定如何准确地做到这一点,但 docker 本身或其他 Linux 工具应该能够在这里提供帮助。

  2. docker tag 您的本地 kiwitcms/kiwi 映像在您下载/部署/升级它们时,以便您可以参考此时的版本。这将避免丢失旧图像。

  3. 额外提示:使用 docker tag,您还可以提供自己自定义的图像名称,并可能将这些图像上传到您自己的 docker 存储库,以便以后访问/备份或在多个主机系统之间分发它们。

此答案由 Kiwi TCMS 团队成员提供给您。如果您觉得有用,请考虑通过 https://opencollective.com/kiwitcms#category-CONTRIBUTE

的小额捐款帮助社区