快速搭建GitLab (Docker)

Introduction

公司需要切换到Git来进行管理,而GitLab是比较全的工具,虽然比较大(自身服务器是利用gitolite搭建)。使用Docker来进行搭建,基本在10秒时间内就可以快速尝试Gitlab,而且服务器仅需要安装Docker即可。且,我对Docker基本使用比较熟悉~

Installation - CentOS 7

本次使用Docker-Compose来进行启动和切换,简化管理。

Install Docker

添加源:

1
2
3
4
5
6
7
8
$ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

安装:

1
$ sudo yum install docker-engine

启动:

1
$ sudo systemctl start docker

开机启动:

1
$ sudo systemctl enable docker

也可以傻瓜式脚本安装:

1
2
3
4
$ sudo yum update
$ curl -fsSL https://get.docker.com/ | sh
$ sudo systemctl enable docker
$ sudo systemctl start docker

更多信息:Installation on CentOS

Install Docker Compose

上代码:

1
2
curl -L https://github.com/docker/compose/releases/download/1.8.0-rc2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

更多信息:docker/compose: Define and run multi-container applications with Docker

编写docker-compose.yml

获得最新docker-compose.yml

1
wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

在定制自身的启动脚本时,需要注意几个点:

  1. 容器文件存储目录,即volumes修改为自身想要存储的目录
  2. Postgresql数据库的DB_PASS需要修改为自身
  3. GitLab容器的Port映射,修改为自身想要的端口
  4. 市区修改为Beijing
  5. GITLAB_HOST修改为访问地址
  6. GITLAB_SECRETS_DB_KEY_BASE修改为生成的密钥(可使用pwgen -Bsv1 64
  7. GITLAB_EMAIL修改为SMTP发送邮箱
  8. SMTP邮件配置见下方
1
2
3
4
5
6
7
8
9
10
# QQ SMTP CONFIG
- SMTP_ENABLED=true
- SMTP_DOMAIN=domain.com
- SMTP_HOST=smtp.exmail.qq.com
- SMTP_PORT=465
- SMTP_USER=hwangjr@domain.com
- SMTP_PASS=hwangjrpass
- SMTP_STARTTLS=true
- SMTP_TLS=true
- SMTP_AUTHENTICATION=login

其他不进行配置。

Run

启动容器及其他常用命令:

1
2
3
4
5
6
docker-compose up -d
docker-compose down
docker-compose stop
docker-compose rm
docker-compose logs
...

数据备份和恢复

备份:

1
2
3
4
#!/bin/bash

docker-compose stop && docker-compose rm
docker run --name gitlab -it --rm sameersbn/gitlab:latest app:rake gitlab:backup:create

恢复:

1
2
3
4
5
#!/bin/bash

docker-compose stop && docker-compose rm
docker run --name gitlab -it --rm sameersbn/gitlab:latest app:rake gitlab:backup:restore
# docker run --name gitlab -it --rm sameersbn/gitlab:latest app:rake gitlab:backup:restore BACKUP=1417624827

更多信息:sameersbn/docker-gitlab: Dockerized GitLab

Ref

sameersbn/docker-gitlab: Dockerized GitLab
Install Compose
docker/compose: Define and run multi-container applications with Docker