Git 之九 - Docker 搭建 Gitlab 服务器

前言

Docker 环境下官方提供三种方式安装 Gitlab,第一种是基于 Docker 引擎安装,第二种是集群环境下安装,第三种是通过 Docker-Compose 安装。本文将介绍如何通过 Docker-Compose 安装 Gitlab,如果需要 Docker 官方安装 Gitlab 的教程,可点击这里

安装 Docker

站内教程:Docker 之一 Docker 介绍与安装

安装 Docker-Compose

站内教程:Docker 之十七 Docker-Compose 安装与使用

Gitlab 数据卷挂载介绍

docker-gitlab-volumes

创建 Docker-Compose 配置文件,使用默认端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建目录
# mkidr -p /usr/local/gitlab

# 创建docker-compose.yml配置文件
# vim /usr/local/gitlab/docker-compose.yml
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'

创建 Docker-Compose 配置文件,在 Docker 容器内使用自定义端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 创建目录
# mkidr -p /usr/local/gitlab

# 创建docker-compose.yml配置文件,在Docker容器内使用自定义端口
# 此处重点是在Docker容器内使用自定义端口,而非简单修改Docker容器的端口映射
# vim /usr/local/gitlab/docker-compose.yml
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
nginx['listen_port'] = 9090
external_url 'http://gitlab.example.com:9090'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '9090:9090'
- '2224:2224'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'

Docker-Compose 安装 Gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
# 进入配置文件docker-compose.yml所在的目录
# cd /usr/local/gitlab

# 拉取最新的Gitlab镜像
# docker-compose pull

# 创建并启动Gitlab容器
# docker-compose up -d

# 查看Gitlab容器的运行情况(使用在Docker容器内指定自定义端口的docker-compose配置)
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23a12382baff gitlab/gitlab-ce:latest "/assets/wrapper" 4 minutes ago Up 4 minutes (healthy) 22/tcp, 80/tcp, 0.0.0.0:2224->2224/tcp, 443/tcp, 0.0.0.0:9090->9090/tcp gitlab_web_1

测试访问 Gitlab

启动 Gitlab 容器后,稍等三四分钟然后在浏览器输入以下地址访问 Gitlab 的 Web 页面: http://127.0.0.1 或者 http://127.0.0.1:9090

安装后配置 Gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 进入配置文件docker-compose.yml所在的目录
# cd /usr/local/gitlab

# 编辑docker-compose的配置文件,添加相关配置
# vim docker-compose.yml
environment:
GITLAB_OMNIBUS_CONFIG: |
nginx['listen_port'] = 9090
....(省略)

# 停止Giblab容器
# docker-compose stop

# 删除Giblab容器(数据卷的数据默认不会被删除)
# docker-compose down

# 创建并启动Gitlab容器
# docker-compose up -d

安装后更新、升级 Gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 进入配置文件docker-compose.yml所在的目录
# cd /usr/local/gitlab

# 停止Giblab容器
# docker-compose stop

# 在配置文件docker-compose.yml中指定Gitlab新的版本号,或者直接指定最新的版本,即“gitlab/gitlab-ce:latest”
# vim docker-compose.yml
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
....(省略)

# 拉取最新的Gitlab镜像
# docker-compose pull

# 创建并启动Gitlab容器
# docker-compose up -d

注意事项

为了以后方便更新 Gitlab 镜像,同时更好地处理更新镜像带来的向前兼容问题,建议首次安装或者更新 Gitlab 的时候,直接指定具体需要安装的版本号,而不是直接使用 latest 版本号。Gitlab-CE 的版本号可以从这里获取。

1
2
3
4
5
6
# 在配置文件docker-compose.yml中指定Gitlab的版本号
# vim /usr/local/gitlab/docker-compose.yml
web:
image: 'gitlab/gitlab-ce:11.7.5-ce.0'
restart: always
....(省略)