Docker搭建gitlab-ce并还原数据库

场景:原来的gitlab是使用ubuntu自带的apt安装的,已经使用了半年多,最后在阿里云的轻量级服务器上终于有些抗不住了,一天死好多次,连网站都进不去。

决定将gitlab迁移到内网,在物理机上运行。

刚好,原来通过apt安装的方式不好作云部署,我们组未来可能要上k8s,所以这里直接用docker来接盘gitlab,也是为了学习实践docker,docker也更加方便管理。

第一步:备份

数据是最重要的,迁移一定要万分小心,不要弄丢了代码库!

如果是apt安装的gitlab可以直接使用如下命令进行备份

gitlab-rake gitlab:backup:create

一般来说如果是apt安装的gitlab可以在/var/opt/gitlab/backups/下找到生成的backup文件,保存好这个文件,一会恢复用。除了这个备份文件外,另外建议保存data下两个文件:gitlab.rbgitlab-secrets.json,其中gitlab.rb也可能是/etc下的,我一般配置etc下的。

第二步:Docker安装gitlab

直接使用docker-compose安装:

新建一个文件夹docker,新建文件docker-compose.yml,编辑:

version: '2'
services:
   gitlab:
        image: 'gitlab/gitlab-ce:13.2.2-ce.0'
        restart: unless-stopped
        container_name: 'gitlab'
        hostname: 'w2.iict.cn'
        ports:
            - '81:80'
            - '444:443'
            - '23:22'
        volumes:
            - /docker/gitlab/config:/etc/gitlab
            - /docker/gitlab/data:/var/opt/gitlab
            - /docker/gitlab/logs:/var/log/gitlab

在这里,将docker内目录gitlab映射到docker外物理机上:/docker/gitlab/。

所以我们要把第一步中备份的三个文件分别归位,放在/docker/gitlab/data下的对应位置。

并且为了避免冲突,这里把docker内端口映射到了物理机分别:“+1”

使用 docker-compose up 运行起来

第三步:还原数据库

这一步必须在docker gitlab启动的情况下!

docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=1608272828_2020_12_18_13.2.2 --trace

这里BACKUP变量后面的是备份文件去除了后缀

启动

docker-compose up
# 或
docker-compose start

gitlab启动较慢,清等待到现实页面。

一些配置

所有的配置都在 /docker/gitlab/config 下,主要是gitlab.rb文件,external_url要配置成和访问地址,反向代理,外网一样的网址,这在git clone时会用到

关于升级

如果直接在gitlab-compose使用latest版本,而这个latest版本比你的backup版本新的话,是会报一个版本不匹配错误的,这个时候应该遵循backup版本,先使用对应的版本的gitlab。

等到全部安装完成,并且正常启动gitlab后,就可以修改docker-compose下的gitlab版本为latest,当然版本跨越不能太大,大版本之间不兼容的。

Docker可以用来轻松地在容器中运行GitLab CE(Community Edition),这是一个开源的Git服务,提供了代码托管、持续集成/持续部署等功能。下面是使用Docker安装GitLab CE的基本步骤: 1. **安装Docker**: 首先确保你的系统上已经安装了Docker。如果你的系统是Linux,可以使用包管理器如apt或yum;如果是Windows或Mac,可以从Docker官网下载安装。 2. **获取GitLab CE镜像**: 使用Docker Hub上的官方镜像,你可以运行`docker pull gitlab/gitlab-ce`来下载最新的GitLab CE镜像。 3. **运行GitLab容器**: 创建一个Docker运行命令,指定所需的端口映射和数据卷,以保存配置和数据。例如: ``` docker run -d \ --name gitlab \ -p 80:80 -p 443:443 -p 2222:22 \ --restart always \ -v /path/to/data:/var/opt/gitlab \ -v /path/to/config:/etc/gitlab \ gitlab/gitlab-ce ``` 这里 `-d` 表示后台运行,`-p` 映射端口,`--restart always` 确保容器重启时继续运行,`-v` 挂载主机目录到容器中的路径。 4. **设置环境**: 容器启动后,可能需要访问GitLab Web界面进行初始化设置,包括数据库连接信息、邮件服务器配置等。首次启动时,可能还需要完成一些基础的配置步骤。 5. **安全和认证**: 为了保护GitLab,确保配置了适当的安全措施,包括HTTPS(通常映射的443端口)和密码策略。 6. **监控和日志**: 为持久监控和问题排查,你可能需要查看Docker容器的日志和使用第三方工具对GitLab进行性能监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

devilyouwei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值