情况

根据官方教程,使用离线安装脚本进行安装。

安装后实际上在 /opt/halo 下运行的一个 Docker 的实例,实际是从 Nginx 反向代理出去的。

如果你和我的情况,那么就可以往后看(我使用的是 linux 系统)

拉取最新的 halo 应用

docker pull registry.fit2cloud.com/halo/halo-pro:2.24.2

这里的版本号是从下面的网址获取的,包括仓库地址

https://releases.halo.run/releases/

如图所示,就是最新的镜像地址

拉取成功后如上图所示

修改本地docker-compose.yaml

进入/opt/halo 目录,如果你是别的目录就进入你自定义的目录

大概率会看到一个Data 目录,一个install.log 还有一个docker-compose.yaml

我们主要改这个docker-compose.yaml

首先把我们docker-compose.yaml的第一个 image 改成上面那个 Docker 地址,即你 pull 的地址

services:
  halo:
    image: registry.fit2cloud.com/halo/halo-pro:${HALO_VERSION}

改成下面的,注意跟上面拉取的仓库路径是否相同

services:
  halo:
    image: registry.fit2cloud.com/halo/halo-pro:2.24.2

上面的 2.24.2 就是版本号

${HALO_VERSION} 不用管,这个对应的是隐藏文件.env 的版本号,有能力的直接改 env 文件,切记要检查你的registry 仓库是否一样。

停止并更新

停止当前运行的 Halo 实例

 先 cd 切换到 docker-compose.yaml 所在的目录

 先查看当前运行的实例列表
 docker ps
 然后记住 CONTAINER ID 

 然后停止即可
 docker stop 753cf24e3e12

 然后更新并开启容器
 docker-compose up -d

正常会看到下图所示,我是 PG 数据库,所以显示 pg,如果你是 mysql,则显示 mysql,启动后直接刷新博客即可

检查

进入 console/overview 查看概览,即可看到已经升级到最新的 2.24.2 系统了

难点

  1. 要先拉取官方提供的 Halo 的 docker image

  2. 然后修改 docker-compose.yaml 文件中的 image 与拉取的相同

  3. 进入 halo 目录,先停止,再docker-compose up -d即可