Linux迁移gitlab容器并配置
迁移gitlab容器本文分两部分,第一步在新服务器上安装相同版本的gitlab容器,可以在确定gitlab版本之后直接在docker上拉取,我这里直接从原服务器上将镜像打包加载到新服务器上。第二步从原服务器上操作备份文件,将备份文件在新服务器上备份恢复。具体配置如下:
1、安装gitlab容器
1.1 从原服务器上将gitlab镜像打包
docker save 1eb39cd825fa > gitlab-ee.tar
1.2 新服务器将tar包加载为镜像
docker load -i ./gitlab-ee.tar
1.3 查看加载的镜像
docker images
1.4 启动docker容器
我这里按原来的容器的配置启动,可根据自己需要配置,若原容器的gitlab.rb文件里有配置,则同样在启动新容器后做配置
docker compose -f docker-compose.yml up -d
#docker-compose.yml
version: '3.6' name: gitlab
services: web: image: 'my_ubuntu_container'restart: always hostname: ''environment: GITLAB_OMNIBUS_CONFIG: |external_url 'https://xxxxxx' gitlab_rails['gitlab_shell_ssh_port'] = xxxx ports: - '48081:8081' - '2222:22' volumes: - '/opt/gitlab/config:/etc/gitlab' - '/opt/gitlab/logs:/var/log/gitlab' - '/opt/gitlab/data:/var/opt/gitlab'shm_size: '256m'
2、配置容器备份恢复
2.1 在原服务器上备份文件
# 014cc12bf4ae为运行的容器id
docker exec -it 014cc12bf4ae gitlab-backup create
2.2 将备份文件发送到新服务器
scp ./1732785650_2024_11_28_15.5.4-ee_gitlab_backup.tar root@xx.xx.xx.xx:/tmp
2.3 将备份文件放在备份目录 /var/opt/gitlab/backups下
cd /var/opt/gitlab/backups
mv /tmp/1732785650_2024_11_28_15.5.4-ee_gitlab_backup.tar ./
#给备份文件授权
chmod 777 1732785650_2024_11_28_15.5.4-ee_gitlab_backup.tar
2.4 恢复前需要先停一些服务
#进入到容器里
docker exec -it 382 bash
#查看容器内运行的模块
gitlab-ctl status
#unicorn、sidekiq为数据连接相关服务,若存在则停止
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
#停止应用服务器puma
gitlab-ctl stop puma
2.5 在容器内部执行备份命令
#老版本直接恢复,新版本需要把文件的后缀删除到版本标识前
gitlab-rake gitlab:backup:restore BACKUP=1732785650_2024_11_28_15.5.4-ee
2.5 重启刚才停止的服务
gitlab-ctl start xxx
#或者重启所有模块
gitlab-ctl restart
至此迁移服务完成