gitlab-ce迁移到docker与版本升级

本文详细介绍了如何将GitLab从CE迁移到Docker环境,并进行版本升级。涉及源数据备份、新服务器环境准备、数据恢复、PostgreSQL和Redis的启动、以及从11.7.5逐步升级到12.2.5的步骤,同时解决升级过程中遇到的各种问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


服务器是aws的,之前的gitlab是源码安装,升级很不方便,现在迁移到docker,版本从11.7.5升级到12.2.5

一、源数据备份

  1. 登录线上gitlab
  2. 执行命令
$ cd /home/git/gitlab
$ sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production

备份后数据在/home/git/gitlab/tmp/backups/下,名字为 日期_版本_gitlab_backup.tar
注:/home/git为挂载的硬盘

  1. 将需要的文件拷贝到/home/git/gitlab下
$ sudo mkdir /home/git/gitlab/gitlab_file
$ sudo cp /etc/nginx/conf.d/default.conf  /home/git/gitlab/gitlab_file         nginx配置文件
$ sudo cp /etc/nginx/conf.d/gitlab-pages.conf  /home/git/gitlab/gitlab_file    pages配置文件
$ sudo cp /etc/nginx/fullchain.pem  /home/git/gitlab/gitlab_file     	       nginx密钥文件
$ sudo cp /etc/nginx/privkey.pem   /home/git/gitlab/gitlab_file		           nginx密钥文件

注:根据需求,gitlab要开启pages,所以拷贝pages的配置文件;nginx要启用ssl

  1. 复制gitlab数据盘(/home/git) 卷—>创建快照 快照—>创建卷

二、恢复前准备

  1. 新启动的gitlab服务器系统为ubuntu18.04,将新建的卷挂载到服务器上
  2. 2.创建存放相应文件及存放数据的的目录、挂载数据盘
$ mkdir /home/ubuntu/gitlab_file
$ sudo mkdir /data
$ 将数据盘挂载到/data下,可将其他文件删除,只保留备份数据文件,/data作为存放数据的盘。
  1. 将需要的文件拷贝到gitlab_file中
$ sudo cp /opt/gitlab/gitlab_file/default.conf  /home/ubuntu/gitlab_file         nginx配置文件
$ sudo cp /opt/gitlab/gitlab_file/gitlab-pages.conf /home/ubuntu/gitlab_file     pages配置文件
$ sudo cp /opt/gitlab/gitlab_file/fullchain.pem  /home/ubuntu/gitlab_file        nginx密钥文件
$ sudo cp /opt/gitlab/gitlab_file/privkey.pem   /home/ubuntu/gitlab_file	     nginx密钥文件
  1. Docker安装
    各系统安装docker 链接 https://zhuanlan.zhihu.com/p/54147784
    将ubuntu用户加入docker组
$ sudo gpasswd -a ubuntu docker
  1. Docker-compose安装

(1) 运行以下命令下载最新版本的 docker-compose:

$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

(2) 更改二进制文件的权限,使其能够运行:

$ sudo  chmod +x /usr/local/bin/docker-compose

(3) 测试安装

$ docker-compose --version
  1. 更改本机sshd服务端口为23
    注:需要将gitlab容器22端口映射到本机22端口

三、数据恢复

  1. 启动Postgresql

(1) 拉取数据库镜像

$ docker pull sameersbn/postgresql:10-2

(2) 创建数据目录

$ mkdir -p  /data/postgresql/data

(3) 启动数据库

$ bash pg.sh
$ cat pg.sh
docker run --rm --name postgresql -d \
        -e  'DB_NAME=gitlabhq_production' \
        -e  'DB_USER=gitlab' \
        -e  'DB_PASS=123456' \
        -e  'DB_EXTENSION=pg_trgm' \
        -v /data/postgresql/data:/var/lib/postgresql \
        sameersbn/postgresql:10-2
  1. 启动redis

(1) 拉取redis镜像

$ docker pull sameersbn/redis:4.0.9-3

(2) 创建redis数据目录

$ mkdir -p /data/redis/data

(3) 启动redis

$ bash redis.sh
$ cat redis.sh
docker run --rm --name redis -d \
        -v /data/redis/data:/var/lib/redis  \
        sameersbn/redis:4.0.9-3
  1. gitlab

(1) 拉取gitlab镜像

$ docker pull sameersbn/gitlab:11.7.5  旧版本
$ docker pull sameersbn/gitlab:11.11.0 中间版本
$ docker pull sameersbn/gitlab:12.2.5  新版本

注:从11.7.5升级到12.2.5版本需要先升级到

### PyCharm 打开文件显示全的解决方案 当遇到PyCharm打开文件显示全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值