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

使用Docker搭建GitLab实践

139次阅读
没有评论

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