美文网首页
docker方式部署的gitlab跨版本迁移升级

docker方式部署的gitlab跨版本迁移升级

作者: _fishman | 来源:发表于2020-07-14 20:37 被阅读0次

当前版本是10.8.7

建议进入容器操作,我尝试过直接在外部执行备份恢复,由于项目多,时间太长,会导致失败

一定要先备份当前版本

备份当前的Gitlab,用于更新失败恢复

docker exec -it gitlab bash 
gitlab-rake gitlab:backup:create

# 默认执行完毕备份文件存在容器的 /var/opt/gitlab/backups

# 备份文件名大概长这样
1594726692_2020_07_14_10.8.7_gitlab_backup.tar

# 恢复命令
docker exec -it gitlab bash 
gitlab-rake gitlab:backup:restore BACKUP=1594726692_2020_07_14_10.8.7

恢复时候如果提示

Unpacking backup ... tar: 1594726692_2020_07_14_10.8.7_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup faile

执行以下命令:

docker exec -i gitlab chown -R git.git  /var/opt/gitlab/backups/1594726692_2020_07_14_10.8.7_gitlab_backup.tar

接下来进行升级

官方升级文档

1、先拉取所需镜像到本地

docker pull gitlab/gitlab-ce:10.8.7-ce.0
docker pull gitlab/gitlab-ce:11.3.4-ce.0
docker pull gitlab/gitlab-ce:11.11.8-ce.0
docker pull gitlab/gitlab-ce:12.0.12-ce.0 
docker pull gitlab/gitlab-ce:12.10.6-ce.0

2、逐一替换image镜像版本(直至更新到最新)

10.8.7 -> 11.3.4 -> 11.11.8 -> 12.0.12 -> 12.10.6
gitlab/gitlab-ce:10.8.7-ce.0
gitlab/gitlab-ce:11.3.4-ce.0
gitlab/gitlab-ce:11.11.8-ce.0
gitlab/gitlab-ce:12.0.12-ce.0 
gitlab/gitlab-ce:12.10.6-ce.0

基本操作流程(每更新一个版本操作一次,以此类推

  • 停止gitlab全部服务
docker exec -i  gitlab /opt/gitlab/bin/gitlab-ctl stop

停止gitlab容器

docker stop gitlab
  • 更换镜像版本
  • 启动服务,确认是否正常
docker-compose up

完整的docker-compose.yml

version: '2'
services:
    gitlab:
      image: 'gitlab/gitlab-ce:12.10.6-ce.0'
      container_name: gitlab
      restart: unless-stopped
      hostname: 'gitlab'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://10.0.0.100'
          gitlab_rails['gitlab_shell_ssh_port'] = 2212
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['smtp_enable'] = true
          gitlab_rails['smtp_address'] = "smtp.qiye.aliyun.com"
          gitlab_rails['smtp_port'] = 465
          gitlab_rails['smtp_user_name'] = "xx@xx.com"
          gitlab_rails['smtp_password'] = "password"
          gitlab_rails['smtp_authentication'] = "login"
          gitlab_rails['smtp_enable_starttls_auto'] = true
          gitlab_rails['smtp_tls'] = true
          gitlab_rails['gitlab_email_from'] = 'xx@xxcom'
      ports:
        - '80:80'
        - '443:443'
        - '2212:22'
      volumes:
        - config:/etc/gitlab
        - data:/var/opt/gitlab
        - logs:/var/log/gitlab
      logging:
        driver: "json-file"
        options:
          max-file: '3'
          max-size: "20m"
volumes:
    config:
    data:
    logs:

gitlab-runner注册

docker run  -t -id -v /data/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner:v12.10.3

docker exec  -i gitlab-runner \
   gitlab-runner register \
  --non-interactive \
  --executor "shell" \
  --url "http://10.0.0.100/" \
  --registration-token "hGLJCvnzskSEU4MfS2md" \
  --description "devops-runner" \
  --tag-list "build,deploy" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

相关文章

  • docker方式部署的gitlab跨版本迁移升级

    当前版本是10.8.7 建议进入容器操作,我尝试过直接在外部执行备份恢复,由于项目多,时间太长,会导致失败 一定要...

  • gitlab迁移docker部署并版本升级

    写在开始: 公司之前的gitlab服务器,版本8.10.5,是由开发同学安装、部署和维护。官方安装步骤教程好多页,...

  • 使用docker部署gitlab流程记录

    why docker 部署简单,而且docker官网有成熟的docker gitlab repo 迁移简单 ,如果...

  • Gitlab跨版本升级

    本文记录Gitlab跨版本升级的具体操作过程。 按照官方的说法,gitlab允许小版本直接升级,大版本需要阶段升级...

  • gitlab 跨版本升级至docker

    2、 更换镜像源(如果系统没有更新镜像源) 3、安装一个和线上同版本的gitlab 4、恢复备份文件 5、由于gi...

  • docker部署gitlab+Jenkins

    docker部署gitlab、jenkins docker部署gitlab、jenkins 首先下载gitlab镜...

  • Docker部署GitLab

    [toc] Docker部署GitLab 系统:Ubuntu20.04Gialab版本:14.6.1(http:/...

  • GitLab跨版本升级

    公司使用的gitlab版本比较低还是8版本,目前最新13版本了,很多功能都缺少跨版本升级顺序:当前版本--->当前...

  • Gitlab版本升级

    Gitlab docker部署命令 停服务,准备备份,防止升级期间有研发同学提交代码 备份文件 删除docker ...

  • Docker方式部署GitLab升级最新版本

    一、安装环境 操作系统:CentOS6.7Docker服务:docker/1.7.1安装GitLab前请确保以上环...

网友评论

      本文标题:docker方式部署的gitlab跨版本迁移升级

      本文链接:https://www.haomeiwen.com/subject/cxtqhktx.html