阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker搭建GitLab实践

449次阅读
没有评论

共计 3799 个字符,预计需要花费 10 分钟才能阅读完成。

SVN 与 GIT,二者皆须会

当 前版本控制系统(Version Control System,VCS)有集中化版本版本控制系统(Centralized Version Control System,简称 CVCS)和分布式版本控制系统(Distributed Version Control System,简称 DVCS)。
集中化版本控制系统的代表是 SVN,分布式版本控制系统的代表是 GIT。

熟悉 SVN 已两年,玩过 SVNKIT、svn cli、pysvn,当然也搭建过 SVN 服务端。
平常偶尔也通过 GitHub 或 Git@OSC 使用 GIT,web 界面所提供的功能强大,简单易用。
而 SVN 在业界目前没发现有开源的成熟的类似 GitHub 这样的解决方案;
GitLab 号称是 GitHub 的开源实现,它拥有与 Github 类似的功能,其中 Git@OSC 就是基于 GitLab 项目搭建。
也一直有想法自己搭建 GitLab,用来体验、使用、熟悉它。
而查阅过多篇关于 GitLab 的搭建的官方文档或博客,深深的感觉搭建过程过于繁琐,非一日之功,于是搭建 GitLab 计划就被搁浅了。
当然,也有第三方提供一键安装 Gitlab 的解决方案(如 Bitnami GitLab Installers),但不是很感冒,并没有做尝试。

Docker,让 GitLab 安装部署更简单

而今 Docker 流行,它使得软件安装部署变得更简单,通过 Docker 镜像与容器就可以快速搞定这些繁琐的、重复的安装部署过程,并且镜像可移植。
之前曾用 Docker 部署过 Jenkins 和 ReviewBoard,切身体会到了 Docker 的带来的便利。
有了之前对 Docker 的了解与实践,于是开始了使用 Docker 搭建 GitLab 的实践。
GitLab 的 Docker 镜像已经有大牛做好,并且一直在随着 GitLab 这个版本帝的升级而进行维护,详见其 GitHub 仓库,并且文档也很健全。

使用 Docker 搭建 GitLab 实践

使用 docker-compose 快速启动 Gitlab

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

三步走运行 GitLab 容器

1、运行一个 PostgreSQL 容器

docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--volume /srv/docker/gitlab/postgresql:/var/lib/postgresql \
sameersbn/postgresql:9.4-2

2、运行一个 Redis 容器

docker run --name gitlab-redis -d \
--volume /srv/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis:latest

3、运行 GitLab 容器

docker run --name gitlab -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 10080:80 \
--env 'GITLAB_PORT=10080' --env 'GITLAB_SSH_PORT=10022' \
--volume /srv/docker/gitlab/gitlab:/home/git/data \
sameersbn/gitlab:7.13.1

注意:GitLab 应用的启动需要几分钟。

通过 csphere 查看 gitlab 相关容器

使用 Docker 搭建 GitLab 实践

访问 GitLab

访问地址:http://localhost:10080,使用默认的用户名和密码登录。
默认的用户名:root
默认的密码:5iveL!fe

使用 Docker 搭建 GitLab 实践

GitLab 前不久启用了全新 logo,界面布局也有变化:

使用 Docker 搭建 GitLab 实践

GitLab 更多配置

通过上面的步骤已经快速启动了 GitLab 容器,可以用来测试使用,但是要在生产环境使用 GitLab 还需要进行一系列配置。
GitLab 的一系列配置信息(如:GitLab_HOST、Mail、LDAP 等)目前还无法从 web 界面进行配置。
而 docker-gitlab 为这提供了以环境变量的形式提供了一系列可配置的参数。
这些环境变量需要在 GitLab 镜像启动的时候指定。
如果当前 GitLab 容器已启动,可以停止、删除容器,然后基于 GitLab 镜像指定环境变量再创建、启动新容器即可。

GITLAB_HOST 配置

GITLAB_HOST: The hostname of the GitLab server. Defaults to localhost 
这个值会被 Gitlab 用来生成 repo 的链接,所以必须要设置。否则,在创建的 repo 中,会发现所有的 repo 链接都是以 localhost 为 hostname。

MAIL 配置

mail 可以用来在用户注册的时候给用户发送邮箱认证链接相关信息。
默认的 mail 配置使用的是 gmail,需要一个用户名和密码来登录到 gmail 服务器。
当然,也可以通过指定一系列 SMTP 相关的环境变量来使用其他邮箱(如 QQ 邮箱、网易邮箱)作为邮件服务器。

时区配置

GitLab 默认的时区是 UTC,北京时区为 UTC+ 8 区。
可以通过指定环境变量 GITLAB_TIMEZONE=Beijing 来更改时区。

包括但不限于上面的配置,GitLab 还可以定制更多配置信息,如 LDAP、SSL、OmniAuth Integration 等等,详情请参考官方说明文档。

Docker-GitLab 搭建遇到的问题

磁盘空间不足

PostgreSQL 容器在启动之后迅速关闭,再次启动亦是如此,且并没有给出错误提示信息。
通过使用 docker logs gitlab-postgresql 查看容器日志时获得:No space left on device,在主机上清理磁盘空间后解决了该问题。

页面提供的访问 gitlab 的默认用户名和密码不准确(目前已修正)

页面提供的默认密码为 password,登录失败,后来使用 5iveL!fe 这个登录成功。
查看 docker-gitlab 的提交日志,关于默认密码,有如下行:

使用 Docker 搭建 GitLab 实践

同时,与之相关的还有 issue 389:

使用 Docker 搭建 GitLab 实践

为 Docker-GitLab 做贡献

在阅读 docker-gitlab 的 README 时,发现文档有一处使用的 fig(docker-compose 的前身),
于是 fork 了 docker-gitlab 的源码,并提交了一个 pull request 将 fig 修改为 docker-compose,
目前该 PR 已经被 Merged,很荣幸自己也成为 docker-gitlab 的一个 contributor。

使用 Docker 搭建 GitLab 实践

使用 Docker 搭建 GitLab 实践

使用 Docker 搭建 GitLab 实践

后续 Docker-GitLab 研究计划

  • 研究 docker-gitlab 的其他配置,如 LDAP、SSL、OmniAuth Integration 等

  • 研究 docker-gitlab 的安装配置文件(docker-gitlab/assets)

  • 研究 docker-gitlab 的 Dockerfile

  • 研究 docker-gitlab 的 entrypoint.sh(该 shell 脚本近千行)

参考

  • docker-gitlab 官方说明文档

  • docker-gitlab 部署

 

更多 GitLab 相关教程见以下内容

Ubuntu 14.04 下安装 GitLab 指南  http://www.linuxidc.com/Linux/2015-12/126876.htm

如何在 Ubuntu Server 14.04 下安装 Gitlab 中文版  http://www.linuxidc.com/Linux/2015-12/126875.htm

CentOS 源码安装 GitLab 汉化版  http://www.linuxidc.com/Linux/2015-10/124648.htm

在 Ubuntu 12.04 上安装 GitLab http://www.linuxidc.com/Linux/2012-12/75249.htm

GitLab 5.3 升级注意事项 http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的 Git 项目仓库) http://www.linuxidc.com/Linux/2013-06/85754.htm

在 RHEL6/CentOS6/ScientificLinux6 上安装 GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm

CentOS 6.5 安装 GitLab 教程及相关问题解决 http://www.linuxidc.com/Linux/2014-05/101526.htm

GitLab 的详细介绍:请点这里
GitLab 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-05/131888.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3799字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7981188
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新SSL证书系统、申请godaddy的APIKEY

升级自动部署更新 SSL 证书系统、申请 godaddy 的 APIKEY 公司之前花钱购买的 ssl 证书快...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...