docker swarm 部署 gitlab-ee 并设置https

通过docker swarm 安装部署gitlab服务可以更方便的升级版本,以及高效运维。本篇主要介绍gitlab的docker swarm 安装方式。

  1. 初始化docker swarm 集群
1
$ sudo docker swarm init
  1. 创建lvm逻辑磁盘卷,格式化并挂载/gitlab目录下
1
2
3
4
5
$ sudo fdisk /dev/vdb
$ sudo pvcreate /dev/vdb1
$ sudo vgcreate gitlab /dev/vdb1
$ sudo lvcreate -L 199G -n gitlab gitlab
$ sudo mkfs.xfs /dev/gitlab/gitlab
  1. 创建gitlab数据挂载目录
1
$ sudo mkdir -pv /gitlab/{config,data,logs}
  1. 开始部署gitlab-ee版本
1
2
3
4
5
6
7
8
9
10
11
12
 $ sudo docker service create \
--name "git-inside-gitlab" \
--hostname git.test.cn \
--network pilipa-network \
--replicas 1 \
--publish "mode=host,published=2222,target=22" \
--publish "mode=host,published=80,target=80" \
--publish "mode=host,published=443,target=443" \
--mount type=bind,src=/gitlab/config,dst=/etc/gitlab \
--mount type=bind,src=/gitlab/logs,dst=/var/log/gitlab \
--mount type=bind,src=/gitlab/data,dst=/var/opt/gitlab \
"gitlab/gitlab-ee:11.4.9-ee.0"
  1. 配置gitlab.rb
1
2
3
4
external_url "https://git.test.cn"
nginx['redirect_http_to_https'] =true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/git.test.cn.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/git.test.cn.key"
  1. 重新加载配置文件使其生效
1
$ sudo gitlab-ctl reconfigure
  1. 通过阿里云的SLB代理到ECS上搭建的gitlab服务上,然后设置dns解析即可。