Docker 搭建 Gitlab 服务
文章目录
【注意】最后更新于 March 13, 2020,文中内容可能已过时,请谨慎使用。
场景
公司使用的bitbucket
提供的git
远程仓库,为什么选择他历史原因喽,回想第一天克隆一个1G+
的repo
等待了一天,这个痛苦啊。最近的每次发版都着实的感觉到bitbucket
慢的给蜗牛一样(应该是墙的问题每次都得开VPN才能正常玩啥),鉴于此情况下,决定使用自建Gitlab
服务,选择华东(上海)地区机房,日本团队的小伙伴测试的速度400M+
大小的repo
,克隆下来30分钟左右。
安装 Docker
Ubuntu 安装 Docker,官方文档:https://docs.docker.com/install/linux/docker-ce/ubuntu/
- 更新 apt 包索引
|
|
- 安装最新版本的 Docker Engine-Community和containerd
|
|
- 查看安装成功的版本
|
|
Docker 下快速部署 Gitlab 服务
使用开源的Gitlab docker-compose.yml
快速搭建,
我计划将gitlab
服务放在/usr/local/gitlab
目录,故创建了此目录
- 下载
docker-compose.yml
|
|
- 修改
docker-compose.yml
配置项,这里仅贴出修改过的配置项
|
|
这里我对外暴露的是9180
和9122
端口,然后在负载均衡器中配置SSL
证书,完成对https
的访问,如需ssh
方式访问,负载均衡器中还需配置22=>9122
的转发,负载均衡器配置图见下图。
|
|
为更日后更方便迁移gitlab服务,redis-data
、postgresql-data
、gitlab-data
volumes,这里我分别配置成相对’./‘目录
- 安装 docker-compose
|
|
或者通过pip
安装
|
|
不推荐如下curl
方式安装(你要问为什么?下载速度比乌龟爬的都慢「龟速」)
|
|
4.启动 gitlab 服务
|
|
- 访问 gitlab 服务
|
|
如果你是域名直接解析到本地,那么可以通过域名访问。
特殊场景
我司ssl
证书统一管理在阿里云负载均衡器上,为了日后方便统一更换过期证书,gitlab
服务也使用负载均衡器。通过研究阿里云负载均衡器发现,不支持前端协议http
转后端协议tcp
。
那么问题来了,docker-compose
启的服务全部都是tcp
协议,那么如何完成ssl
即http
前端协议转后端某个端口的http
协议呢?
经过思考,只得借用nginx
转发实现,配置如下:
|
|
均衡器中监听配置图
批量导入用户
参考地址:https://www.jianshu.com/p/83b06525c946
温馨提醒
为了方便后期迁移Gitlab
到别的服务器,强烈建议将数据目录配置gitlab-data
数据目录,方便迁移(不远的3个月我就迁移过,甚是方便:-))
补充
docker-compose 卸载方式:
- 删除对应的二进制文件
|
|
2.pip
方式卸载
|
|
文章作者 BING
上次更新 2020-03-13