共计 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 相关容器
访问 GitLab
访问地址:http://localhost:10080,使用默认的用户名和密码登录。
默认的用户名:root
默认的密码:5iveL!fe
GitLab 前不久启用了全新 logo,界面布局也有变化:
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 的提交日志,关于默认密码,有如下行:
同时,与之相关的还有 issue 389:
为 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 的其他配置,如 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