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

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

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
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
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
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 create

pause
3.6、创建windows定时任务

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

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

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

在这里插入图片描述

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

3.6.3、备份恢复

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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部