Gitlab安装/备份/恢复
版本
---- docker-ce 最新版
---- docker-compose 1.29.2
---- gitlab汉化版镜像 twang2218/gitlab-ce-zh:11.1.4
安装
安装docker-ce
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce*
systemctl start docker
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安装gitlab汉化版镜像
docker pull twang2218/gitlab-ce-zh:11.1.4
启动gitlab
创建git文件夹
mkdir -p /usr/local/docker/gitlab
编辑docker-compose.yml
version: '3'
services:
web:
image: 'twang2218/gitlab-ce-zh:11.1.4'
restart: always
hostname: '192.168.89.97'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.89.97:80'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
unicorn['port'] = 8888
nginx['listen_port'] = 80
ports:
- '80:80'
- '8080:8080'
- '8443:443'
- '2222:22'
volumes:
- /usr/local/docker/gitlab/config:/etc/gitlab
- /usr/local/docker/gitlab/data:/var/opt/gitlab
- /usr/local/docker/gitlab/logs:/var/log/gitlab
- /usr/local/docker/gitlab/backups:/var/opt/gitlab/backups
**注意:**如果要更改external_url 的端口号80.则对应的nginx也要一起更改端口号
compose启动
cd /usr/local/docker/gitlab
docker-compose up -d
测试
浏览器访问
http://192.168.89.97
初始用户名:admin@example.com
初始密码:访问浏览器后第一次直接设置密码即可,使用该用户名和密码访问登录即可
登录成功后
备份
进入Gitlab容器
docker exec -it 容器名 /bin/bash
执行备份
gitlab-rake gitlab:backup:create
备份文件位置
执行完命令后,备份文件默认放置
cd /var/opt/gitlab/backups
生成的文件名
example : 1629266728_2021_08_18_11.1.4_gitlab_backup.tar
拷贝备份到宿主机
执行完备份的命令后,退到宿主机器,复制容器里的备份文件到宿主机
docker container cp 容器:/var/opt/gitlab/backups/备份文件 /var/opt/gitlab/backups/
**注意:**如果按照安装中的docker-compose.yml已经将备份文件挂载到宿主机,无需执行此命令,直接去宿主机/var/opt/gitlab/backups/去拿备份文件,会自动同步。
备份copy
将老机器上的备份文件上传到新机器上
scp -r 备份文件 newServer:/var/opt/gitlab/backups/
scp -r 备份文件 root@新服务器的IP:/var/opt/gitlab/backups/
恢复
设置777权限
chmod 777 备份文件 新服务器执行,防止解压无权限
chmod 777 /var/opt/gitlab/backups/*.tar
进入GItlab容器
进入新服务器的gitlab容器
docker exec -it 容器名 /bin/bash
关闭数据库连接
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
恢复命令
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
gitlab-rake gitlab:backup:restore BACKUP=1629266728_2021_08_18_11.1.4
**注意:**不要带_gitlab后缀
启动gitlab
sudo gitlab-ctl start
脚本
一键安装与恢复
准备备份文件和docker-compose.yml
在新机器上执行
mkdir -p /usr/local/docker/gitlab/backups
备份文件 放到/usr/local/docker/gitlab/backups
docker-compose.yml 放到/usr/local/docker/gitlab
#安装docker
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce*
systemctl start docker
#下载gitlab images
docker pull twang2218/gitlab-ce-zh:11.1.4
#安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#启动
#/usr/local/docker/gitlab 在此路径下放置docker-compose.yml
cd /usr/local/docker/gitlab
docker-compose up -d
#恢复开始
docker exec $(docker ps | grep twang2218/gitlab-ce-zh:11.1.4 |awk '{print $1}') /bin/bash -c "
gitlab-ctl stop unicorn;\
gitlab-ctl stop sidekiq;\
gitlab-rake gitlab:backup:restore force=yes BACKUP=$(ls /var/opt/gitlab/backups/ |grep _gitlab |awk -F "_gitlab" '{print $1}');\
gitlab-ctl start;"