gitlab容器的迁移(部署)并配置自动备份

embedded/2024/11/17 0:21:45/

gitlab_0">gitlab容器的迁移(部署)并配置自动备份

本文背景为从Ubuntu服务器上迁移gitlab容器到windows并备份,若要直接拉取镜直接安装配置可直接从第二小标题参考

gitlab_4">1、原Ubuntu的gitlab容器制作为镜像

2.1 将运行的容器制为镜像
#镜像:id014cc12bf4ae
#制作的镜像名:my_ubuntu_container
docker commit 014cc12bf4ae my_ubuntu_container
2、查看生成的镜像
docker images
3、将镜像打包
#将镜像打包为my_ubuntu_container.tar
docker save my_ubuntu_container > my_ubuntu_container.tar

2、在windows的命令行里将打包的镜像运行

2.1 从tar文件中加载镜像到docker里
docker load -i my_ubuntu_container.tar
2.2 将运行配置写进docker-compose
#docker-compose.yml
version: '1.0'  services:  web:  image: 'my_ubuntu_container'restart: always  hostname: ''environment:  GITLAB_OMNIBUS_CONFIG: |external_url 'https://192.168.xxx.xxx:8081'  gitlab_rails['gitlab_shell_ssh_port'] = 2222  ports:  - '48081:8081'  - '2222:22'  volumes:  - 'D:/gitlab/config:/etc/gitlab'  - 'D:/gitlab/logs:/var/log/gitlab'  - 'D:/gitlab/data:/var/opt/gitlab'  shm_size: '256m'
2.3 启动容器

需要进到docker-compose.yml的目录运行

docker compose -f docker-compose.yml up -d
gitlab_70">2.4 导入原gitlab的数据

启动完容器会发现没有数据,需将原服务gitlab挂载目录data下的数据打包传到window里

cd D:/gitlab/data
mv data databak

可在windows文件管理器中解压

2.5 重启容器
docker restart 容器id

3、windows环境下的自动备份

3.1、需要做备份时首先要考虑备份文件目录挂载的位置,方便维护

这里将备份文件挂载到‘E’盘下重新运行容器,我这里直接编辑yml文件

version: '1.0'  name: gitlab
services:  web:  image: 'my_ubuntu_container'restart: always  hostname: ''environment:  GITLAB_OMNIBUS_CONFIG: |external_url 'https://192.168.xxx.xxx:8081'  gitlab_rails['gitlab_shell_ssh_port'] = 2222  ports:  - '48081:8081'  - '2222:22'  volumes:  - 'D:/gitlab/config:/etc/gitlab'  - 'D:/gitlab/logs:/var/log/gitlab'  - 'D:/gitlab/data:/var/opt/gitlab'- 'E:/softdata/gitlab/bak:/home/gitlab'shm_size: '256m'
3.2、启动容器
docker compose -f docker-compose.yml up -d
gitlabrb_125">3.3、修改配置文件gitlab.rb开启备份
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/home/gitlab"gitlab_rails['backup_archive_permissions'] = 0644
#备份文件存放时长单位为秒
gitlab_rails['backup_keep_time'] = 5184000
gitlabgitlab_136">3.3、进入到gitlab容器重新生成配置并重启gitlab服务
#重新生成配置
gitlab-ctl reconfigure
#gitlab服务
gitlab-ctl restart
3.4、测试备份配置

完成以上配置即可在命令行中测试生成备份文件

docker exec -it 60e56b8c693c gitlab-backup create
3.5、配置windows批处理文件

在windows上创建一个 .bat文件,作用是执行gitlab容器备份

@echo off
:: 执行 Docker 命令,在容器 60e56b8c693c 中以交互模式运行 gitlab-backup create
docker exec -it 60e56b8c693c gitlab-backup createpause
3.6、创建windows定时任务

3.6.1、打开windows的 ‘任务计划程序’
在这里插入图片描述

3.6.2、建立一个基本任务,选择具体的设置

操作栏点击‘创建基本任务’编辑名称、描述,继续设置‘触发器’选择任务何时开始,再设置‘操作’任务执行什么操作。最后在‘启动程序’里选中编辑好的.bat批处理文件,最后选择完成就好。

在这里插入图片描述

配置好的定时任务可点击启动测试执行结果,这里到挂载目录下:E:/softdata/gitlab/bak下查看备份文件是否存在
在这里插入图片描述

3.6.3、备份恢复

这里执行完的备份文件需要有两个配置文件才可恢复完整的容器,两个配置文件即gitlab-secrets.jsongitlab.rb,这里提前备份保存即可。


http://www.ppmy.cn/embedded/138127.html

相关文章

Flink_DataStreamAPI_源算子Source

Flink_DataStreamAPI_源算子Source 1从集合中读取数据2从文件读取数据3从Socket读取数据4从Kafka读取数据5从数据生成器读取数据Flink支持的数据类型1)Flink的类型系统2)Flink支持的数据类型3)类型提示(Type Hints) 1从…

C++单例模式实现

单例模式(Singleton Pattern)是软件设计模式中的一种,用于确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。 一、初始版本(手动创建释放) 一个类只有一个实例的实现方法: 隐藏构…

git命令提交项目

此为linux下的命, windows的话,去掉sudo即可 *转载至链接 http://www.eqicode.com/ 1、进入项目代码根目录,执行: sudo git init 把这个目录变成git可以管理的仓库。此时在文件加下,会出现一个 .git的隐藏文件&#…

LeetCode 40-组合总数Ⅱ

题目链接&#xff1a;LeetCode40 欢迎留言交流&#xff0c;每天都会回消息。 class Solution {List<List<Integer>> rs new ArrayList<>();LinkedList<Integer> path new LinkedList<>();public List<List<Integer>> combinatio…

【golang-技巧】-线上死锁问题排查-by pprof

1.背景 由于目前项目使用 cgo golang 本地不能debug, 发生死锁问题&#xff0c;程序运行和期待不一致&#xff0c;通过日志排查可以大概率找到 阻塞范围&#xff0c;但是不能找到具体问题在哪里&#xff0c;同时服务器 通过k8s daemonset 部署没有更好的方式暴露端口 获取ppr…

开发中SQL积累

1.SQL中判断varchar类型是否为空&#xff1f; 检查 NULL 值&#xff1a; WHERE column_name IS NULL 检查空字符串&#xff1a; WHERE column_name 结合 NULL 和空字符串的检查&#xff1a; WHERE column_name IS NULL OR column_name 2.TRIM函数 作用&#xff1a;…

ODC 如何精确呈现SQL耗时 | OceanBase 开发者工具解析

前言 在程序员或DBA的日常工作中&#xff0c;编写并执行SQL语句如同日常饮食中的一餐一饭&#xff0c;再寻常不过。然而&#xff0c;在使用命令行或黑屏客户端处理SQL时&#xff0c;常会遇到编写难、错误排查缓慢以及查询结果可读性不佳等难题&#xff0c;因此&#xff0c;图形…

redis高性能键值数据库技术简介

什么是redis redis是远程字典服务&#xff08;Remote Dictionary Server &#xff09;的简写&#xff0c;是一个完全开源的高性能的Key-Value数据库&#xff0c;提供了丰富的数据结构如string、Hash、List、SetSortedset等等。数据是存在内存中的&#xff0c;同时Redis支持事务…