升级前准备

在进行 GitLab 升级前,建议备份数据。我没有进行数据备份。

步骤 1:停止当前 GitLab 容器

  1. 停止当前运行的 GitLab 容器:

    sudo docker stop gitlab
  2. 删除当前的 GitLab 容器:

    sudo docker rm gitlab
  3. 下载并更新 GitLab 镜像为 latest 版本,更新 docker-compose.yml 文件中的 GitLab 镜像版本,并重新启动容器:

    docker-compose up -d
  4. 检查容器状态:

    docker ps

    你可能会看到容器不停重启,表明容器启动失败。

步骤 2:检查 GitLab 升级日志

查看 GitLab 升级日志,使用以下命令:

docker logs gitlab

你可能会看到类似以下的提示:

It seems you are upgrading from 17.4.1 to 17.9.2.
It is required to upgrade to the latest 17.8.x version first before proceeding.

这意味着你需要先将 GitLab 升级到 17.8.x 版本,然后再继续升级到 17.9.x。

步骤 3:升级到 17.8.x

  1. 下载 GitLab 17.8.x 版本镜像,并更新 docker-compose.yml 中的 GitLab 镜像版本为 17.8.x。例如:

    image: 'gitlab/gitlab-ce:17.8.x-ce.0'

    请替换 17.8.x 为实际版本号,如 17.8.5

  2. 重新启动容器:

    docker-compose up -d
  3. 检查容器状态:

    docker ps

    如果容器仍然无法成功启动,继续查看日志。

  4. 查看日志:

    docker logs gitlab

    如果日志提示如下:

    It is required to upgrade to the latest 17.5.x version first before proceeding.

    这意味着你需要先将 GitLab 升级到 17.5.x 版本,再继续升级到 17.8.x。

步骤 4:升级到 17.5.x

  1. 下载 GitLab 17.5.x 版本镜像,并更新 docker-compose.yml 中的 GitLab 镜像版本为 17.5.x。例如:

    image: 'gitlab/gitlab-ce:17.5.x-ce.0'
  2. 重新启动容器:

    docker-compose up -d
  3. 检查容器状态:

    docker ps

    容器应该成功启动。

  4. 查看日志:

    docker logs gitlab

    等待 5-10 分钟,直到可以通过浏览器访问 GitLab(例如,http://<GitLab URL>/admin),并查看版本号。

步骤 5:继续升级到 17.8.x

  1. 一旦 GitLab 成功升级到 17.5.x 并正常运行,你可以继续升级到 17.8.x。

  2. 更新 docker-compose.yml 中的 GitLab 镜像版本为 17.8.x,例如:

    image: 'gitlab/gitlab-ce:17.8.x-ce.0'
  3. 重新启动容器:

    docker-compose up -d
  4. 检查容器状态:

    docker ps
  5. 查看日志:

    docker logs gitlab

    等待 5-10 分钟,直到可以通过浏览器访问 GitLab,确认版本号是否已更新。

步骤 6:继续升级到latest 最终升级到 17.9.x

  1. 完成 17.8.x 升级后,继续更新 docker-compose.yml 中的 GitLab 镜像版本为 17.9.x,例如:

    image: 'gitlab/gitlab-ce:17.9.x-ce.0'
  2. 重新启动容器:

    docker-compose up -d
  3. 检查容器状态:

    docker ps
  4. 查看日志:

    docker logs gitlab

    等待 5-10 分钟,确保 GitLab 服务已启动并完成升级。

步骤 7:完成升级并开始使用

  1. 一旦 GitLab 升级并正常启动,你就可以开始使用最新版本的 GitLab 了。

  2. 如果一切正常,升级已成功完成。

  3. 虽然多次跨版本失败,但没有数据丢失


注意事项

  • 每次升级后,请查看 GitLab 日志,确认没有错误。
  • 按照日志中的提示逐步升级,以避免出现版本不兼容的情况。
  • 如果升级过程中遇到问题,检查 GitLab 官方文档并根据日志信息进行排查(我在文档没看到17.4.x对应升级版本,一步一步测试出来的)。

 

参考文档:

  1. GitLab 版本升级文档
    官方 GitLab 版本升级文档提供了关于如何从旧版本升级到新版本的详细说明,并列出了常见的升级路径。
    链接:GitLab 版本升级文档

  2. GitLab Docker 升级文档
    专门针对 GitLab Docker 版本升级的文档,描述了如何通过 Docker 镜像来进行 GitLab 升级。
    链接:GitLab Docker 升级文档