GitLab基本介绍
GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
本篇教程将教你如何安装部署及使用GitLab。
Git家族成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
Gitlab服务构成
Nginx:静态web服务器。
gitlab-shell:用于处理Git命令和修改authorized keys列表。
gitlab-workhorse: 轻量级的反向代理服务器。
logrotate:日志文件管理工具。
postgresql:数据库。
redis:缓存数据库。
sidekiq:用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
Gitlab工作流程
安装与部署
通过docker部署
第一步:拉取镜像
docker pull gitlab/gitlab-ce
第二步:创建gitlab配置
创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 容器启动后可以映射到本机,然后后续就可以直接在主机查看和编辑了,不用再进入容器操作,便于日后升级, 因此我们先准备这三个目录。
mkdir -p /home/gitlab/etc
# 数据文件
mkdir -p /home/gitlab/log
# 日志文件
mkdir -p /home/gitlab/data
第三步:启动容器
docker run --publish 8443:443 \
--publish 8090:80 \
--name gitlab \
--privileged=true \
--restart unless-stopped \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest;
第四步:修改配置文件
修改gitlab.rb
修改 /home/gitlab/etc/gitlab.rb 把external_url改成部署机器的域名或者IP地址
放开注释的 external_url,并修改值为docker的ip地址:
external_url 'http://10.211.55.4'
第五步:访问gitlab
用户名:root
初次访问gitlab界面会让你设置密码,如果没有则可自行更改
密码更改方式
- docker exec进入到容器中
- 执行gitlab-rails console production命令
- user = User.where(id: 1).firs
- user.password = 'secret_pass'
- user.save!
- 退出容器
第六步:进入gitlab,设置中文
点击设置
选择简体中文,并保存
退出重进,即可生效