基于docker的github升级之路

2023-05-16

基于docker的github升级之路

公司的gitlab目前的版本是8.13.2,运行在docker容器内。该版本使用的api版本是V3,已经不适合一些监控统计工具的调用了,看了gitlab官网上对最新版V11的介绍,感觉功能很强大,更想更新尝试了。

心路历程

首先准备使用官方提供的基于docker的更新方式。

//!!!先做备份后执行
sudo docker stop gitlab
sudo docker rm gitlab
sudo docker pull gitlab/gitlab-ce:latest
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

通过尝试,该方案根本不行,因为版本跨度特别大,执行后git直接报500无法使用。

随后,通过网上查找文献知道了需要逐级升级到大版本的最后一个版本才行。为了不影响线上的git,我将gitlab做的备份复制到的我的本机,准备先运行相同版本gitlab的docker镜像,然后在容器内进行逐级升级。但事实是在docker内做升级时特别特别特别慢,而且CPU的4个核心都被docker的进程占用且几乎100%运行,我的MBP瞬间可以烤鸡蛋了……

另外,不要在ubuntu系统的的apt-get命令直接下载gitlab的软件包,实在是太慢了,可以从国内镜像下载deb包后直接执行,具体办法在执行方案里。

最终,只能采用去搭一台ubuntu的虚机,在虚机内完成的升级,既然docker上的git这么难维护,果断迁移到虚机来实现。具体步骤如下:

  • 1、(在docker镜像内)对gitlab的8.13.2数据进行备份
  • 2、使用迅雷下载gitlab各大版本的最后一版安装包(下载地址:)
    • gitlab-ce_8.13.2-ce.0_amd64.deb
    • gitlab-ce_8.17.8-ce.0_amd64.deb
    • gitlab-ce_9.5.9-ce.0_amd64.deb
    • gitlab-ce_10.8.7-ce.0_amd64.deb
    • gitlab-ce_11.1.4-ce.0_amd64.deb
  • 3、本地安装ubuntu16.4的虚拟机
  • 4、在本地虚拟机中安装gitlab8.13.2
  • 5、将步骤1的备份恢复到8.13.2
  • 6、逐一升级安装至11.1.4
  • 7、将11.1.4的版本进行备份
  • 8、服务器上创建虚机
  • 9、运行虚机,安装gitlab11.1.4后将步骤7的备份恢复

真的是有点麻烦,以后一定要注意及时升级。

执行方案

执行旧版本的备份

//执行备份
gitlab-rake gitlab:backup:create
//进入备份的默认文件夹
cd /var/opt/gitlab/backups

逐版本下载软件包

当然要包括当前所在的gitlab版本,否则无法恢复。下载可以使用浙江大学的镜像来查找,建议使用下载工具。地址

  • gitlab-ce_8.13.2-ce.0_amd64.deb
  • gitlab-ce_8.17.8-ce.0_amd64.deb
  • gitlab-ce_9.5.9-ce.0_amd64.deb
  • gitlab-ce_10.8.7-ce.0_amd64.deb
  • gitlab-ce_11.1.4-ce.0_amd64.deb

安装Ubuntu虚拟机

在MBP上使用Parallel来安装是一键的。

在虚拟机中安装旧版本

//将下载好的文件复制进虚拟机,{}内的参数请自行替换
scp -P 22 {user}@{ip}:{path} ./

sudo -s
apt-get update

//我虚拟机的版本缺少openssh-server
apt-get install openssh-client
apt-get install openssh-server

//如遇缺少其他组件可以先安装组建后再继续执行
dpkg -i gitlab-ce_8.13.2-ce.0_amd64.deb
gitlab-ctl reconfigure

//运行后可以通过命令和浏览器来检查运行情况
gitlab-ctl status

执行旧版本的恢复

//没有问题的话,把备份的zip复制到默认备份文件夹
cp 8.13_gitlab_backup.tar /var/opt/gitlab/backups/1532675049_gitlab_backup.tar

//执行恢复
chomod 777 1532675049_gitlab_backup.tar
gitlab-rake gitlab:backup:restore BACKUP=1532675049
gitlab-ctl restart
gitlab-ctl status

逐一升级

因为默认的备份不是全量备份,建议在每次升级后做好数据备份

dpkg -i gitlab-ce_8.17.8-ce.0_amd64.deb
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:backup:create

dpkg -i gitlab-ce_9.5.9-ce.0_amd64.deb
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:backup:create

dpkg -i gitlab-ce_10.8.7-ce.0_amd64.deb
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-rake gitlab:backup:create

dpkg -i gitlab-ce_11.1.4-ce.0_amd64.deb
gitlab-ctl reconfigure
gitlab-ctl restart

gitlab11.1.4的数据备份

gitlab-rake gitlab:backup:create

服务器创建虚拟机

注意是Ubuntu16.4版本。

安装Git11.1.4并恢复备份

dpkg -i gitlab-ce_11.1.4-ce.0_amd64.deb
gitlab-ctl reconfigure
gitlab-rake gitlab:backup:restore BACKUP=11.1.4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于docker的github升级之路 的相关文章

随机推荐

  • 使用telnet通过SMTP协议发送邮件

    1 确认本地电脑的telnet服务是否打开 2 查看邮箱授权码是否设置 在图片中有提示 xff0c 授权码是用于登录第三方邮件客户端的专用密码 xff0c 这样可以保护自己的密码不被泄露 xff0c 还能委托其他客户端进行邮件的操作 如果没
  • 在Linux环境下使用命令行编译运行C源文件

    1 安装gcc 首先如何确定是否已经安装gcc了呢 xff1f 如果有一个hello c的源文件 xff0c 那么使用命令gcc hello c 如果报出提示 xff0c command gcc not found就是代表没有安装这个程序
  • C语言的指针传递和C++的引用传递

    首先 xff0c C语言没有引用传递 C 43 43 中使用引用传递的方式是在函数的参数前加 amp 号 xff0c 如 xff1a void Delete X LinkList amp L ElemType x 声明 Delete X L
  • python 安装pandas失败的解决办法

    python 安装pandas失败的解决办法 1 首先用CMD进行安装 xff0c 安装失败 2 然后用pycharm进行安装 xff0c 同样也失败 图片省略 3 最后在pycharm中添加清华源网址 https pypi tuna ts
  • docker 容器的启动、停止和删除

    1 查看所有docker容器 查看所有在运行的容器 xff1a docker ps 查看所有容器 包括停止的 docker ps a 来看看他们的区别 xff1a 2 启动容器 这里我来启动第二个Redis容器 xff08 因为我已经有一个
  • 用real vnc连接服务器

    用real vnc连接服务器 xff08 一 xff09 在无法访问服务器内部网络 首先 xff0c 本地电脑需要可以ping通服务器的IP xff0c 像学校的服务器 xff0c 一般只能用学校的网络才能访问 xff0c 若在校外 xff
  • nginx配置ssl证书实现https访问

    配置ssl证书之前 xff0c 先准备SSL证书 xff0c 至于获取的途径很多 xff08 阿里云的服务 xff0c 第三方服务购买 xff09 这里不详细解释 以下是我的SSL证书 准备好证书后 xff0c 找到nginx的安装目录 x
  • 棋牌游戏算法——麻将系列总结

    麻将介绍 麻将的基本规则都是一样的 xff0c 我就不累赘了 我从事棋牌工作五年了 xff0c 开发过无数的麻将玩法 xff0c 如柳州麻将 xff0c 转转麻将 xff0c 红中麻将 xff0c 来宾麻将 xff0c 广东麻将 xff0c
  • Docker run 命令详解

    命令格式 xff1a docker run OPTIONS IMAGE COMMAND ARG Usage Run a command in a new container 中文意思为 xff1a 通过run命令创建一个新的容器 xff08
  • ROS笔记——创建简单的主题发布节点和主题订阅节点

    在安装好ROS后 xff0c 接着学习如何创建节点和节点之间的通信方式 xff0c 以一个简单的主题发布节点和主题订阅节点说明 节点是连接ROS网络等可执行文件 xff0c 是实现某些功能的软件包 xff0c 也是一个主要计算执行的进程 一
  • SVN常用命令总结

    svn使用总结 SVN检出操作 svn checkout path svn checkout svn 192 168 0 1 project 简写 xff1a svn co SVN查看状态 span class token string 3
  • vue-cli3搭建的vue改造成SSR项目

    vue cli3搭建的vue改造成SSR项目 一 文章简介二 搭建vue项目三 改造成SSR首先安装ssr的所需相关依赖改造router ts改造store ts改造main ts创建entry client ts创建entry serve
  • VSCode配置Git随记

    vscode中对git进行了集成 很多操作只需点击就能操作 无需写一些git指令 不过这就需要你对vscode进行配置 下面我会讲到git的配置与免密码上传github 一 安装Git管理工具 可上官网安装 安装路径Git 安装路径默认C
  • VSCode插件推荐(2018.5.31)

    前言 vscode我觉得是用过最好用的编辑器 xff0c 相对而言没有webStorm myeclipse那么卡 xff0c 而且最主要是免费的 xff0c 不用烦每次更新软件的时候破解码无法使用 xff0c 这篇博客主要是记录我自己发现的
  • VSCode配置 Debugger for Chrome插件

    Debugger for Chrome这个插件是直接在vscode里面进行调试js文件 xff0c 跟谷歌的控制台是一样的功能 xff0c 下载了它就不用打开浏览器的控制台就能进行打断点 首先在左侧扩展栏找到这个插件下载好了后重启编辑器之后
  • VSCode打开vue项目的vue组件提示错误的解决办法及key属性的作用

    本博文为学习过程中随记 xff0c 如有抄袭请评论告知谢谢 xff01 最近重新拾起了vue项目 xff0c 因为之前开始习惯使用VSCode编码 xff0c 因此在打开vue项目时 xff0c vue的语法v for默认报错 以下是解决方
  • vue搭建脚手架及部署vue项目随记

    本博文是用于介绍搭建vue脚手架及使用webpack部署vue脚手架目录 1 依赖软件 Node js 1 1下载node js http nodejs cn download https npm taobao org mirrors no
  • 最新版XAMPP中php7.2配置mongodb3.6扩展

    本博文为本人配置mongo随记 第一步下载xampp xff0c 地址 xff1a https www apachefriends org zh cn download html xff0c 这里我下载的是最新版php7 2 8 安装完之后
  • nginx的进程模型

    文章目录 一 Nginx进程模型master进程worker进程示意图 二 Nginx reload配置文件过程三 worker进程处理请求的过程四 Nginx多进程模型的好处 一 Nginx进程模型 Nginx启动后 xff0c 以dae
  • 基于docker的github升级之路

    基于docker的github升级之路 公司的gitlab目前的版本是8 13 2 xff0c 运行在docker容器内 该版本使用的api版本是V3 xff0c 已经不适合一些监控统计工具的调用了 xff0c 看了gitlab官网上对最新