一、GitLab简介
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。Github是公共的git仓库,而Gitlab适合于搭建企业内部私有git仓库
官网:
https://about.gitlab.com/
https://github.com/gitlabhq/gitlabhq
截止本文创建时间,GitLab最新版本为v7.4.3
二、组件
7.4.3之前版本,镜像里包含所有组件,7.4.3版本镜像里只包含核心组件:nginx、sshd、ruby on rails、sidekiq,sameersbn/gitlab是基于ubuntu镜像的
前端:Nginx,用于页面及Git tool走http或https协议
后端:Gitlab服务,采用Ruby on Rails框架,通过unicorn实现后台服务及多进程
SSHD:开启sshd服务,用于用户上传ssh key进行版本克隆及上传。注:用户上传的ssh key是保存到git账户中
数据库:目前仅支持MySQL和PostgreSQL
Redis:用于存储用户session和任务,任务包括新建仓库、发送邮件等等
Sidekiq:Rails框架自带的,订阅redis中的任务并执行
三、架构
四、GitLab安装部署
个人不推荐,因为RPM包容量太大,200多M,适合于Linux初学者,未尝试过
第三方docker镜像: https://github.com/sameersbn/docker-gitlab (笔者推荐)
镜像可以快速实现部署并使用,适合于熟悉Docker的人使用,入门很快。而且使用Docker镜像就使用户不用过多了解内部细节,通过启动容器带上环境变量参数即可实现GitLab参数的配置
4.1、本文主要介绍docker下安装:
采用docker镜像安装GitLab
4.2、下载镜像
docker pull sameersbn/gitlab:7.4.3 # 下载gitlab镜像
docker pull sameersbn/mysql:latest # 下载gitlab所用到的mysql镜像
docker pull sameersbn/redis:latest # 下载gitlab所用到的redis镜像
4.2.1、启动redis
命令:
docker run \
--name=gitlab_redis \
-tid \
sameersbn/redis:latest
4.2.2. 启动mysql
mkdir -p /opt/gitlab/mysql
命令:
docker run \
--name=gitlab_mysql \
-tid \
-e 'DB_NAME=gitlabhq_production' \
-e 'DB_USER=gitlab' \</