gitlab介绍概述
gitlab 是一个用于仓库管理系统的开源项目。使用git作为代码管理工具,并在此基础上搭建起来的web服务。github是公共的git仓库,而gitlab适合于搭建企业内部私有git仓库
官网:
https://github.com/gitlabhq/gitlabhq
前端:nginx,用于页面及git tool走http或https协议
后端:gitlab服务,采用ruby on rails框架,通过unicorn实现后台服务及多进程
sshd:开启sshd服务,用于用户上传ssh key进行版本克隆及上传。注:用户上传的ssh key是保存到git账户中
数据库:目前仅支持mysql和postgresql
redis:用于存储用户session和任务,任务包括新建仓库、发送邮件等等
sidekiq:rails框架自带的,订阅redis中的任务并执行
搭建流程
1.创建虚拟机
复制代码 代码如下:
docker-machine create --driver virtualbox --virtualbox-cpu-count 4 --virtualbox-memory 3072 dev-gitlab
2.配置虚拟机的加速器
1
2
3
4
5
6
7
|
docker-machine ssh dev-gitlab
sudo sed -i "s|extra_args='|extra_args='--registry-mirror=http://6cade60d.m.daocloud.io |g" /var/lib/boot2docker/profile
exit
docker-machine restart dev-gitlab
|
3.下载redis,postgresql,gitlab镜像
1
2
3
4
5
|
docker pull sameersbn /redis
docker pull sameersbn /postgresql
docker pull sameersbn /gitlab
|
4.执行上面镜像生成容器( \ 为换行符展现,实际上去掉 \ 一行执行)
1
2
3
4
5
6
7
8
9
|
# 生成postgresql镜像容器
docker run --name postgresql -d \
-e 'db_name=gitlabhq_production' \
-e 'db_user=gitlab' \
-e 'db_pass=password' \
-e 'db_extension=pg_trgm' \
- v /home/docker/opt/postgresql/data : /var/lib/postgresql \
sameersbn /postgresql
|
1
2
3
4
5
|
# 生成redis镜像容器
docker run --name redis -d \
- v /home/docker/opt/redis/data : /var/lib/redis \
sameersbn /redis
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 生成redis镜像容器
# 注意: gitlab_host为虚拟机分配的地址
docker run --name gitlab -d \
--link postgresql:postgresql --link redis:redisio \
-p 10022:22 -p 10080:80 \
-e 'gitlab_port=10080' \
-e 'gitlab_ssh_port=10022' \
-e 'gitlab_secrets_db_key_base=long-and-random-alpha-numeric-string' \
-e 'gitlab_secrets_secret_key_base=long-and-random-alpha-numeric-string' \
-e 'gitlab_secrets_otp_key_base=long-and-random-alpha-numeric-string' \
-e 'gitlab_host=192.168.99.100' \
-e 'gitlab_email=xiahl0916@163.com' \
-e 'smtp_enabled=true' \
-e 'smtp_domain=www.163.com' \
-e 'smtp_host=smtp.163.com' \
-e 'smtp_starttls=false' \
-e 'smtp_user=邮箱地址' \
-e 'smtp_pass=邮箱密码' \
-e 'smtp_authentication=login' \
-e 'gitlab_backup_schedule=daily' \
-e 'gitlab_backup_time=00:30' \
- v /home/docker/opt/gitlab/data : /home/git/data -m 2048m --memory-swap=-1 \
sameersbn /gitlab
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000013493928