docker gitlab/gitlab-ce 升级版本

2023-05-16

原因:

发现服务器内存占用100%,执行命令查看内存占用

ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20

 发现/tmp/juma目录占用内存过高,但是本机目录并没有/tmp/juma目录,通过查找排查,是docker运行的gitlab容器里面的文件目录,查阅gitlab版本说明,发现了该版本漏洞,详情:CVE-2021-22205 GitLab RCE之未授权访问深入分析(一) - FreeBuf网络安全行业门户本篇文章通过分析调试gitlab-workworse和gitlab-rails带你由浅入深一步步了解gitlab最近爆出的RCE未授权部分,看完之后下一个挖出漏洞的说不定就是你。https://www.freebuf.com/vuls/306473.html

 解决方案:

升级gitlab版本来解决此问题,但是gitlab升级不能跨大版本,必须需要升级到对应的版本才可以升级更高的版本.

本人目前git版本12.9.3,需要升级到13.10.3 或以上版本

首先先找到当前gitlab版本的启动命令,这里主要是看项目挂载位置,不然升级版本导致项目丢失就不是我们的目的了.

1.首先先把服务器进行备份,制作镜像或者快照.

2.查找出启动gitlab的命令,这里我使用https://github.com/nexdrew/rekcod 安装这个项目,安装之后使用 

rekcod 容器id

# 得到gitlab的启动命令 
docker run --name gitlab12.9.3 --runtime runc -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab -p 222:22/tcp -p 443:443/tcp -p 80:80/tcp --restart always -h 5cd912f1ca1d --expose 22/tcp --expose 443/tcp --expose 80/tcp -e 'PATH=/opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'LANG=C.UTF-8' -e 'TERM=xterm' -e 'EDITOR=/bin/vi' -d 镜像id '/assets/wrapper'

然后去到docker仓库 找到12.*最后一个版本 下载镜像

docker pull gitlab/gitlab-ce:12.10.14-ce.0

然后停止当前12.9.3版本的容器

docker stop 容器id

使用12.10.14版本镜像启动新的容器

docker run --name gitlab12.10.14 --runtime runc -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab -p 222:22/tcp -p 443:443/tcp -p 80:80/tcp --restart always -h 5cd912f1ca1d --expose 22/tcp --expose 443/tcp --expose 80/tcp -e 'PATH=/opt/gitlab/embedded/bin:/opt/gitlab/bin:/assets:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'LANG=C.UTF-8' -e 'TERM=xterm' -d 容器id '/assets/wrapper'

使用命令查看日志 是否有错误日志

docker logs 容器id 

如果没有错误日志,等待gitlab部署完成,在寻找13.0.*版本的gitlab进行升级 步骤如上,我就不重复累赘了

记得版本不可跨级太多 不然会报错

Cleaning stale PIDs & sockets
It seems you are upgrading from major version 13 to major version 14.
It is required to upgrade to the latest 14.0.x version first before proceeding.
Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrading-to-a-new-major-version
Thank you for using GitLab Docker Image!
Current version: gitlab-ce=14.5.2-ce.0

感谢阅读,有不足之处,欢迎留言探讨. 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker gitlab/gitlab-ce 升级版本 的相关文章

  • 判断一个二维数组a[M][N]中所有元素是否都互不相同。如果都不同,输出1;否则,输出0。【数据结构】

    设计一个函数实现以下功能 xff0c 并测试 功能 xff1a 判断一个二维数组a M N 中所有元素是否都互不相同 如果都不同 xff0c 输出1 xff1b 否则 xff0c 输出0 输出结果 xff1a 主要算法 xff1a int
  • 利用递归和二叉树实现多位数整数的计算

    题目 xff1a 功能设计 xff1a 读取用户输入的表达式创建表达式树功能遍历表达式树进行表达式求值功能输出表达式计算结果功能 功能实现 xff1a 1 2 3 运行结果 xff1a 用户输入1 xff0c 输入要计算的表达式并以 结尾
  • File类常用方法

    File类 xff1a 代表一个特定的文件或者目录 xff08 文件夹 xff09 xff0c 并提供了若干方法对该文件或目录进行操作 File是指文件和目录路径名的抽象表示形式 构造方法 xff1a File String pathnam
  • takes 3 positional arguments but 4 were given错误

    之前写程序经常会碰到此类问题 xff0c 确认发现并没有少参数 函数为类下函数 xff0c 定义时需要添加self参数 但是 xff01 但是 xff01 为何Python给self赋值而你不必给self赋值 xff1f 创建了一个类MyC
  • C语言如何创建属于自己的头文件?

    要想创建一个属于自己的头文件 xff0c 首先我们要明白它的原理 xff0c 具体分为以下两类 xff1a 1 系统头文件 xff1a 这类头文件 xff0c 是系统里边已经有的 xff0c 它们都有一个特点 xff0c 就是都带括号 xf
  • 51单片机定时器

    目录 前言 一 定时器的介绍及其作用 二 定时器的内部构造及其原理 计算机周期 定时器的工作模式与流程 定时器中断相关寄存器 寄存器的配置 三 程序 总结 前言 下面来介绍学习51单片机第一个也是最常用的片上外设 定时器 该硬件是集成在单片
  • 双系统下对ubuntu系统进行扩容

    由于起初装ubuntu系统时啥也不懂 xff0c 从windiws系统中分配给ubuntu的空间很小 xff0c 导致现在ubuntu系统磁盘容量不够用 于是花了一个3 xff0c 4个小时的时间去完成ubuntu系统的扩容 现在记录一下解
  • 【 Kali 安装教程,有手就会】

    Kali 安装教程 第一步 xff1a 新建一台Debian虚拟机 1 xff09 选择客户机操作系统 2 xff09 设置虚拟机名称 存储位置 3 xff09 设置处理器 1颗1核心 设置内存2048MB 设置网络类型NAT 4 xff0
  • JavaScript表达式与运算符的使用以及if分支结构

    一 表达式与运算符 表达式是对一个或多个变量或值 xff08 操作数 xff09 进行运算 xff0c 并返回一个新值 运算符可以分为一下类别 xff1a 赋值运算符 var a 61 10 var b 61 20 var c 61 a 4
  • 应届生学的 java,转自动化测试拿到 15k 薪资,送给大家的经验积分

    窗外 xff0c 西安的冬天阳光明媚 xff0c 坐在电脑前心情十分平静 想在这个难得的闲暇里 xff0c 想起记录一下自己这些年的经历 xff0c 也是给自己留一点以后可以回忆的故事 个人 2015 年入学 xff0c 武汉某大学计科相关
  • 在VS Code的notebook中编写Rust代码

    目录 背景 前提条件 操作步骤 背景 在VS Code的notebook中编写Rust代码 xff0c 听起来就觉得绕 VS Code已经有Rust插件 xff0c 支持编写Rust代码 xff0c 为什么搞这么复杂 为了综合两者的优点 x
  • Linux内核下gitee的使用

    一 什么是git git是一个开源的分布式版本控制系统 xff0c 用于敏捷高效地处理任何或小或大的项目 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 Git 与常用的版本控
  • 洛谷 P1786 帮贡排序

    目录 输入 授予职位 输出前按输出规则排序 输出 最后代码 题目是非常长长长长长长长长长长长长长长长长长长长长长长长长长长长长长 我花了2个小时才做完 这题是大模拟 xff08 打磨你 xff09 xff0c 题目也很长 xff0c 需要耐
  • ./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such

    这个错误提示说明nginx在运行时找不到libpcre so 1这个共享库文件 xff0c 可能是因为系统中没有安装PCRE库或者安装的PCRE库版本不对导致的 解决方法如下 xff1a 确认系统中是否已经安装了PCRE库 xff0c 可以
  • netperf使用指南

    netperf使用笔记 netperf 是一种非常常见的测量网络带宽的工具 xff0c 其安装非常简单 xff1a 1 下载netperf包 2 进入netperf目录 xff0c configure 3 make 4 make insta
  • debian中设置默认声卡

    alsamixer 设置默认声卡 sudo nano etc asound conf 设置声卡1为默认 则写入以下内容 xff1a defaults ctl card 1 defaults pcm card 1 defaults timer
  • zabbix第三方邮箱警告配置

    1 安装postfix软件 root 64 server yum y install postfix Last metadata expiration check 18 30 18 ago on Sun 04 Sep 2022 04 11
  • Python常用基础语法知识点大全合集,看完这一篇文章就够了

    介绍 Python 是一门独特的语言 xff0c 快速浏览一下他的要点 xff1a 面向对象 xff1a 每一个变量都是一个类 xff0c 有其自己的属性 xff08 attribute xff09 与方法 xff08 method xff
  • 删除重复数字的三种方法(详解)

    前言 xff1a 本期是关于去重数字的三种方法详解 xff0c 今天你c了吗 xff1f 输入描述 xff1a 第一行 xff0c 输入一个整数n xff0c 表示序列有n个整数 第二行输入n个整数 xff08 每个整数大于等于1 xff0
  • 【结构体】 结构体引用、结构体数组指针、包含结构的结构体

    目录 一 概念 变量的定义 初识结构体 结构体变量的定义 引用结构体类型的初始化 二 结构体的数组 认识结构体数组 初始化结构体数组 三 结构体指针 初识结构体指针 指向结构体数组的指针 结构体作为函数参数 1 使用结构体变量作为函数参数

随机推荐