docker 启动

# 在线
docker pull gitlab/gitlab-ce:latest
# 离线
docker save -o gitlab-ce-latest.tar gitlab/gitlab-ce:latest
docker load -i gitlab-ce-latest.tar
docker run --detach \--publish 8021:80 --publish 8023:22 \ --name gitlab_test \--restart always \--volume /data/docker/gitlab_test/config:/etc/gitlab \--volume /data/docker/gitlab_test/logs:/var/log/gitlab \--volume /data/docker/gitlab_test/data:/var/opt/gitlab \gitlab/gitlab-ce:latest

备份

  • 50_backup.sh
  • 0 1 * * 1 nohup sh /data/zhengqi_data/shanghai_backup/50_backup.sh >> /data/zhengqi_data/shanghai_backup/50_backup.out 2>1&
#!/bin/sh
# 获取当前日期
current_date=$(date +%Y%m%d%H%M%S)
backup_path=/data/zhengqi_data/shanghai_backup
echo "开始执行备份脚本,当前时间$current_date"echo "创建gitlab备份包"
git_path=/data/docker/gitlab
git_new_backup_path=$backup_path/gitlab/$current_date
git_old_backup_path=$(find "$backup_path"/gitlab -type d -mindepth 1 -maxdepth 1 | head -n 1)
echo "旧gitlab备份文件路径====>$git_old_backup_path"
git_path_backup=$git_path/data/backups/$current_date
sudo  docker exec -t gitlab  gitlab-rake gitlab:backup:create BACKUP=$git_path_backup
echo "创建完成"
echo "转移至备份文件夹"
mkdir -p  $git_new_backup_path/data
mkdir -p  $git_new_backup_path/configmv "$git_path_backup"_gitlab_backup.tar $git_new_backup_path/data
cp $git_path/config/gitlab.rb  $git_new_backup_path/config
cp $git_path/config/gitlab-secrets.json  $git_new_backup_path/config
echo "转移完成"
echo "清理本机旧备份内容"
# 检查文件夹是否存在
if [ -d "$git_old_backup_path" ]; then# 如果存在,删除文件夹及其内容rm -r "$git_old_backup_path"echo "文件夹删除成功 $git_old_backup_path"
elseecho "文件夹不存在: $git_old_backup_path"
fi
echo "备份结束"

恢复

# 进入容器
# 停止 GitLab 容器
docker stop gitlab_test # 启动 GitLab 容器
docker start gitlab_test docker exec -it gitlab_test /bin/bash
chmod 777 /var/opt/gitlab/backups/20250714100001_gitlab_backup.tar
# gitlab-backup restore BACKUP=20250714100001
root@ea0b9740515c:/# gitlab-backup restore BACKUP=20250714100001
2025-07-18 07:00:04 UTC -- Unpacking backup ... 
2025-07-18 07:02:58 UTC -- Unpacking backup ... done
2025-07-18 07:02:58 UTC -- Restoring database ... 
2025-07-18 07:02:58 UTC -- Be sure to stop Puma, Sidekiq, and any other process that
connects to the database before proceeding. For Omnibus
installs, see the following link for more information:
https://docs.gitlab.com/ee/raketasks/backup_restore.html#restore-for-omnibus-gitlab-installationsBefore restoring the database, we will remove all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.Do you want to continue (yes/no)? yes2025-07-18 07:16:14 UTC -- Restoring repositories ... done
2025-07-18 07:16:14 UTC -- Restoring uploads ... 
2025-07-18 07:16:14 UTC -- Restoring uploads ... done
2025-07-18 07:16:14 UTC -- Restoring builds ... 
2025-07-18 07:16:14 UTC -- Restoring builds ... done
2025-07-18 07:16:14 UTC -- Restoring artifacts ... 
2025-07-18 07:16:14 UTC -- Restoring artifacts ... done
2025-07-18 07:16:14 UTC -- Restoring pages ... 
2025-07-18 07:16:14 UTC -- Restoring pages ... done
2025-07-18 07:16:14 UTC -- Restoring lfs objects ... 
2025-07-18 07:16:14 UTC -- Restoring lfs objects ... done
2025-07-18 07:16:14 UTC -- Restoring terraform states ... 
2025-07-18 07:16:14 UTC -- Restoring terraform states ... done
2025-07-18 07:16:14 UTC -- Restoring packages ... 
2025-07-18 07:16:14 UTC -- Restoring packages ... done
2025-07-18 07:16:14 UTC -- Restoring ci secure files ... 
2025-07-18 07:16:14 UTC -- Restoring ci secure files ... done
This task will now rebuild the authorized_keys file.
You will lose any data stored in the authorized_keys file.
Do you want to continue (yes/no)? yes2025-07-18 07:39:40 UTC -- Deleting tar staging files ... 
2025-07-18 07:39:40 UTC -- Cleaning up /var/opt/gitlab/backups/backup_information.yml
2025-07-18 07:39:40 UTC -- Cleaning up /var/opt/gitlab/backups/db
2025-07-18 07:39:40 UTC -- Cleaning up /var/opt/gitlab/backups/repositories
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/uploads.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/builds.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/artifacts.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/pages.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/lfs.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/terraform_state.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/packages.tar.gz
2025-07-18 07:39:44 UTC -- Cleaning up /var/opt/gitlab/backups/ci_secure_files.tar.gz
2025-07-18 07:39:44 UTC -- Deleting tar staging files ... done
2025-07-18 07:39:44 UTC -- Deleting backups/tmp ... 
2025-07-18 07:39:44 UTC -- Deleting backups/tmp ... done
2025-07-18 07:39:44 UTC -- Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need to restore these files manually.
2025-07-18 07:39:44 UTC -- Restore task is done.
2025-07-18 07:39:44 UTC -- Deleting backup and restore PID file ... done# 复制配置文件到容器挂载目录(宿主机操作)
cp /path/to/backup/gitlab.rb /srv/gitlab/config/
cp /path/to/backup/gitlab-secrets.json /srv/gitlab/config/# 重新配置 GitLab(容器内执行)
gitlab-ctl reconfigure# 重启 GitLab 服务(容器内执行)
gitlab-ctl restart
  • 权限异常
root@2504f64e41e6:/var/opt/gitlab/backups# gitlab-backup restore BACKUP=/var/opt/gitlab/backups/20250714100001
2025-07-18 02:52:30 UTC -- Unpacking backup ... 
tar: 20250714100001_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
2025-07-18 02:52:30 UTC -- Unpacking backup failed
2025-07-18 02:52:30 UTC -- Deleting backup and restore PID file at [/opt/gitlab/embedded/service/gitlab-rails/tmp/backup_restore.pid] ... done
root@2504f64e41e6:/var/opt/gitlab/backups# ll
total 17082276
drwx------  2 git  root        4096 Jul 18 02:26 ./
drwxr-xr-x 20 root root        4096 Jul 18 02:36 ../
-rw-------  1 root root 17492234240 Jul 18 02:29 20250714100001_gitlab_backup.tar

gitlab升级 16.1.1到18.2.0

官方升级路径

  • 2 3 4 5 步骤重复执行
# 1. 停止当前容器
docker stop gitlab
docker rm gitlab# 2. 拉取 版本镜像
docker pull gitlab/gitlab-ce:16.3.9-ce.0
docker pull gitlab/gitlab-ce:16.7.10-ce.0
docker pull gitlab/gitlab-ce:16.11.10-ce.0
docker pull gitlab/gitlab-ce:17.1.8-ce.0
docker pull gitlab/gitlab-ce:17.3.7-ce.0
docker pull gitlab/gitlab-ce:17.5.5-ce.0
docker pull gitlab/gitlab-ce:17.8.7-ce.0
docker pull gitlab/gitlab-ce:17.11.6-ce.0
docker pull gitlab/gitlab-ce:18.2.0-ce.0# 3. 使用相同数据卷启动新容器
docker run -d \--hostname your.gitlab.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-ee:16.10.7-ee.0# 4. 等待启动完成后,执行重新配置(触发自动升级)
docker exec -it gitlab gitlab-ctl reconfigure
docker exec -it gitlab gitlab-ctl restart# 5. 验证升级结果
docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89619.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89619.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/89619.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web3 区块链技术与用

#53 敲点算法题 瑞吉外卖day4 调整心态 睡眠 及精神 web3 以下是应北京大学肖臻老师《区块链技术与用》公开课的完整教学大纲,综合课程内容、技术模块及前沿扩展,分为核心章节与专题拓展两部分,引用自公开课资料及学员笔记。 &#x1f4…

Redis1:高并发与微服务中的键值存储利器

redis中存储的数据格式为键值对(Key,Value)在高并发的项目和微服务的项目会频繁的用到redisNoSQL型数据库1.初始Redis1.1认识NoSQLSQL:structure query language关系型数据库结构化:有固定格式要求(表关系,…

/字符串/

字符串 个人模板 5. 最长回文子串 93. 复原 IP 地址 43. 字符串相乘 227. 基本计算器 II

我的开发日志:随机数小程序

文章目录前言UI设计代码前言 为什么我要设计这个程序呢?因为我要用,懒得在网上下载了,于是干脆写了一个。 UI设计 UI是我凹出来的,你们要使用,直接新建一个UI.ui文件,然后把下面的东西输进去就可以了。 …

《Oracle SQL:使用 RTRIM 和 TO_CHAR 函数格式化数字并移除多余小数点》

select RTRIM(to_char(1222.11123344,fm9999990.9999),.) from dual 这条 SQL 语句主要用于对数字进行格式化处理,并移除格式化结果右侧多余的小数点。下面将详细拆解该语句的执行过程和各部分作用。语句详细拆解1. to_char(1222.11123344,fm9999990.9999)函数功能&…

「Java案例」方法重装求不同类型数的立方

利用方法重装实现不同类型数值的立方计算 立方计算方法的重载实现 编写一个程序,要求编写重载方法xxx cube(xxx value)实现对不同类型数值计算立方。 # 源文件保存为“CubeCalculator.java” public class CubeCalculator {public static void main(String[] args) {// 测试…

API 接口开发与接入实践:自动化采集淘宝商品数据

在电商数据分析、价格监控等场景中,自动化采集淘宝商品数据具有重要价值。本文将详细介绍如何通过 API 接口开发实现淘宝商品数据的自动化采集,包含完整的技术方案和代码实现。 一、淘宝 API 接入基础 1. 接入流程概述 注册淘宝账号获取 ApiKey 和 Ap…

python-pptx 的layout 布局

一、布局基础概念 在 PowerPoint 中,布局(Layout) 决定了幻灯片的占位符(如标题、内容、图片等)的排列方式。python-pptx 提供了对布局的编程控制。二、默认布局类型及索引 通过 prs.slide_layouts[index] 访问&#x…

服务器mysql数据的简单备份脚本

服务器mysql数据的简单备份脚本 一个小型项目mysql数据库数据的定时备份 通过crontab定时执行脚本: 0 1 * * * /home/yuyu/mysqlbak.sh备份文件加入时间戳,防止覆盖支持删除超过x天的备份数据文件,防止备份数据文件太多 #!/bin/bash# 配置变量 DB_HOST"127.0.…

数据分析:从数据到决策的核心逻辑与实践指南

在数据驱动决策的时代,“数据分析” 早已不是专业分析师的专属技能,而是每个职场人都需要掌握的基础能力。但很多人在面对数据时,常会陷入 “罗列数据却无结论”“指标好看却解决不了问题” 的困境。本文将基于数据分析的核心定义、关键维度和…

元宇宙与Web3.0:技术特征、关系及挑战

一、元宇宙的技术特征(2025年)1. 空间构建技术3D建模与渲染:实时渲染技术(如Unity HDRP)实现路径追踪光追,AI生成模型(NVIDIA Get3D)3秒生成3D场景。数字孪生技术:城市级…

关于一个引力问题的回答,兼谈AI助学作用

关于一个引力问题的回答,兼谈AI助学作用今日,一个小朋友问我,他从一本物理科普读物上看到这样依据话:地球对人造地球卫星的引力大于太阳对人造地球卫星的引力,但太阳对月亮的引力大于地球对月亮的引力。因书上没有解释…

Java使用FastExcel实现模板写入导出(多级表头)

依赖配置 (Maven pom.xml)<dependencies><!-- FastExcel 核心库 --><dependency><groupId>cn.idev.excel</groupId><artifactId>fastexcel</artifactId><version>1.0.0</version></dependency><!-- Apache POI…

postman接口测试,1个参数有好几个值的时候如何测试比较简单快速?

3天精通Postman接口测试手动到自动&#xff0c;全套项目实战教程&#xff01;&#xff01;当你在 Postman 中测试接口时&#xff0c;如果一个参数有多个需要测试的值&#xff0c;有几种高效的方法可以实现&#xff1a; 1. 使用 CSV 或 JSON 数据文件进行数据驱动测试 这是最推…

imx6ull UI开发

imx6ull UI开发简介在imx6ull上开发UI 应用硬件层面内核驱动显示设备文件描述符设备树软件LVGL用户空间内核QT在imx6ull上开发UI 应用 在 Linux 系统中&#xff0c;应用程序需要通过操作 RGB LCD 的显存来实现在屏幕上显示字符、图像等信息。由于 Linux 采用严格的内存管理机制…

虚拟化测试工具Parasoft Virtualize如何为汽车企业提供仿真测试?

在汽车电子研发中&#xff0c;传统路测曾是验证ECU&#xff08;电子控制单元&#xff09;、车载通信、OTA升级等功能的可靠手段。然而&#xff0c;随着智能驾驶和软件定义汽车&#xff08;SDV&#xff09;的发展&#xff0c;这种依赖物理车辆的测试方式面临显著挑战&#xff1a…

QT之openGL使用(一)

OpenGL简介 官网&#xff1a;OpenGL - The Industry Standard for High Performance Graphics 中文官网&#xff1a;主页 - LearnOpenGL CN OpenGL&#xff08;Open Graphics Library&#xff09;是一种跨语言、跨平台的图形编程接口&#xff0c;主要用于渲染二维和三维矢量…

基于生成对抗网络增强主动学习的超高温陶瓷硬度优化

复现论文:基于生成对抗网络增强主动学习的超高温陶瓷硬度优化 我将使用Python复现这篇关于使用生成对抗网络(GAN)增强主动学习来优化超高温陶瓷(UHTC)硬度的研究论文。以下是完整的实现代码和解释。 1. 环境准备和数据加载 首先,我们需要准备必要的Python库并加载数据。 …

hadoop(服务器伪分布式搭建)

1. 报错 Windows 上写的脚本 拷贝到 Linux&#xff08;比如 CentOS&#xff09;系统时会出现。 bash: ./set_java_home.sh: /bin/bash^M: bad interpreter: No such file or directory 报错原因 ^M 是 Windows 的换行符&#xff08;\r\n&#xff09; Linux 使用的是 Unix 格式的…

超详细 anji-captcha滑块验证springboot+uniapp微信小程序前后端组合

目录 1&#xff1a;pom文件引入jar包 2&#xff1a;配置文件 3&#xff1a;踩坑-1 4&#xff1a;踩坑-2 5&#xff1a;后端二次验证 6&#xff1a;自定义背景图 给用户做的一个小程序&#xff0c;被某局安全验证后&#xff0c;说登录太简单&#xff0c;没有验证码等行为认…