简介
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
安装
# 拉取下镜像
使用Docker安装Gitlab汉化版本 :
docker pull twang2218/gitlab-ce-zh
验证:docker image 查找下有没有twang2218/gitlab-ce-zh
# 使用Docker-compose快速安装
1、创建编写下 docker-compose.yml配置文件(文件名可自己取)
```
version: "3"
services:
gitlab:
image: 'twang2218/gitlab-ce-zh:latest'
container_name: "docker-gitlab"
restart: always
privileged: true
hostname: 'xxx.xxx.xxx.xxx'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url "http://xxx.xxx.xxx.xxx:9090"
gitlab_rails['gitlab_shell_ssh_port'] = 10022
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '9090:9090'
- '10443:443'
- '10022:22'
volumes:
- '/opt/docker-gitlab/config:/etc/gitlab'
- '/opt/docker-gitlab/data:/var/opt/gitlab'
- '/opt/docker-gitlab/logs:/var/log/gitlab'
```
上面的yml是示例,具体请跟您的需要更改container_name(容器名)xxx.xxx.xxx.xxx指的要部署服务的IP名,ports(端口)请先检查下要用的端口有没被占用,volumes(软链接)推荐加入软链接后续找备份文件及配置文件更改多比较方便,具体改成您需要的目录地址
2、创建启动容器
进入docker-compose.yml配置文件的位置
执行 docker-compose up -d
验证:docker-compose ps 查看下刚才有没创建容器成功
3、访问地址
看您刚才设置的IP名和端口是啥,如上面案例的话就访问:
http://xxx.xxx.xxx.xxx:9090
首次打开时,需要设置用密码。默认用户名为root。
定时备份
按照上面的步骤,是不是很简单就完成Gitlab的搭建,接下来我们需要为Gitlab做定时备份,防止数据误删或者服务器重启Gitlab挂了等原因。
Gitlab备份:把仓库代码打包成XXXXX.tar的压缩包,我们在gitlab容器里面调用gitlab-rake gitlab:backup:create来实现备份
Gitlab还原:就是把备份的包给它还原回去勒,我们在gitlab容器里面调用gitlab-rake gitlab:backup:restore BACKUP=备份文件编号 来实现还原
定时备份:就是设置个时间去执行备份代码,通过Linux的crontab命令去执行
为了更方便使用,我们直接写xx.sh文件,放入要执行的备份的代码,然后在crontab调用这个xx.sh文件
创建auto_backup.sh文件
```
#! /bin/bash
docker exec docker-gitlab gitlab-rake gitlab:backup:create
```
auto_backup.sh文件包含两步操作:1.进入docker-gitlab容器 2.执行备份
验证:先给这个文件加个操作权限,然后验证下auto_backup.sh有没执行。
稍等会去看下备份目录下有没有xxx.rar。
gitlab的备份目录默认在/var/opt/gitlab/backups,但我们创建docker-compose.yml配置文做了volumes: - '/opt/docker-gitlab/data:/var/opt/gitlab',所以也可以在'/opt/docker-gitlab/data下的backups去看下有没xxx.rar。如果有的话说明成功,接下去只要做定时就完事了。
```
chmod 777 /opt/auto_backup.sh
/opt/auto_backup.sh
```
定时:
执行 crontab -e,输入00 20 * * * /opt/auto_backup.sh,/opt/auto_backup.sh指刚才穿件auto_backup.sh的文件为置,设置每天晚上8点自动备份,具体时间可以修改参照crontab具体写法
```
crontab -e
00 20 * * * /opt/auto_backup.sh
```