docker安装gitlab、迁移和升级

前言 公司之前gitlab长时间之后经常宕机假死,版本较旧,决定迁移并升级到新版本。
旧版本:10.1.0 服务器二进制安装
新版本:gitlab-ee:13.1.0-ee.0,新server上面,采用docker安装

1. gitlab数据备份

sudo gitlab-rake gitlab:backup:create
备份文件存默认到 /var/opt/gitlab/backups
可以编辑 /etc/gitlab/gitlab.rb 修改默认目录

如果新gitlab部署到另外一台server上,拷贝备份数据gitlab服务器上,可将新的server上面的/data目录通过NFS挂载到旧的/var/opt/gitlab/backups目录下,这样更方便,NFS安装挂载方式,这里不在详述。

2. 安装gitlab

2.1 安装部署

先部署docker,docker安装方式可参考官网
gitlab的docker安装方式如下:

export GITLAB_HOME=/opt/gitlab
docker run --detach \
  --hostname git.abc.com \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest

2.2 恢复数据

注意
gitlab只能同一个版本之间进行迁移,所以新server上面部署同版本的gitlab

#拷贝文件
cp 1614819859_2021_03_04_11.10.4-ee_gitlab_backup.tar /var/opt/gitlab/backups
# 进入docker
docker exec -it gitlab bash 
cd /var/opt/gitlab/backups
#修改备份文件的所有者为git
chown git:git 1614819859_2021_03_04_11.10.4-ee_gitlab_backup.tar /var/opt/gitlab/backups
#恢复还原数据
gitlab-rake gitlab:backup:restore BACKUP=1614819859_2021_03_04_11.10.4-ee 

2.3 依次升级

按照官方推荐的升级序列进行逐次升级,升级到自己像部署到的版本,跨版本升级会报错,步骤如下:

docker exec -it gitlab bash
gitlab-ctl stop
exit
docker stop gitlab
docker rm gitlab

按照  2.1 docker部署gitlab的方式升级部署,只需要替换对应gitlab版本即可。
经过一次或者多次升级到指定版本。

3. 其他常见问题

gitlab中项目名URL为字符串或者其他不正确的域名,而不是正确的ip或域名.
解决方式:进入容器,修改 /etc/gitlab/gitlab.rb,将external_url的值修改为对应访问域名即可。
例如:external_url 'http//gitlab.abc.com',此处前面要加http,不加的话不能正常启动。
另外本人测试如果改成external_url 'https//gitlab.abc.com',此处不能正常启动,因为本人是用额外Nginx反代http,证书没有在gitlab自带的Nginx上配置, 可能是这个原因导致启动不正常的。

### 如何在 Docker升级 GitLab #### 准备工作 为了确保顺利升级,在执行任何操作之前,建议备份现有数据。这可以通过停止当前容器并将卷中的数据复制到安全位置来完成[^1]。 ```bash docker stop gitlab_container_name docker cp gitlab_container_name:/var/opt/gitlab /path/to/safe/location/ ``` #### 停止旧版本的服务 在开始升级过程前,先要停止正在运行的老版本GitLab实例: ```bash docker stop gitlab_container_name docker rm gitlab_container_name ``` #### 下载新版本镜像 接着拉取最新的官方GitLab Docker镜像,这里假设目标是最新的稳定版: ```bash docker pull gitlab/gitlab-ce:latest ``` #### 启动新版服务并迁移数据 利用先前保存的数据重新启动GitLab容器,并指定挂载点以便恢复原有配置数据库状态: ```bash docker run --detach \ --hostname gitlab.example.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-ce:latest ``` 上述命令会读取`/srv/gitlab/config`目录下的设置文件来进行初始化;如果这是首次安装,则该路径下应为空或仅含默认配置。 #### 验证更新成功 最后一步是验证升级后的GitLab是否正常运作。打开浏览器访问设定好的主机名(本例中为`gitlab.example.com`),确认界面显示无误且功能完好即可认为升级顺利完成。 #### 清理过期资源 一旦确认一切运转良好,可以选择删除不再使用的旧版本镜像以释放空间: ```bash docker image prune -f ``` 此命令将移除所有悬空(dangling)镜像——即那些未被任何容器引用的中间层图像。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值