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.json和gitlab.rb,这里提前备份保存即可。