目录

GitLab 是什么

GitLab的优势

GitLab的构成和主要架构

工作流程图

GitLab工作流

 GitLab和兴概念:Merge Request 和Fork

GitLab CI/Pipeline 流水线图

 搭建GitLab

配置


GitLab 是什么

GitLab是一个开源分布式版本控制系统,利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目

GitLab的优势

开源免费,适合中小型公司将代码放置在该系统中;品差异化的版本管理,离线同步以及强大分支管理功能;便捷的GUI操作界面以及强大账户权限管理功能;集成度很高,能够集成绝大多数的开发工具;支持内置HA,保证在高并发下仍旧实现高可用性

GitLab的构成和主要架构

架构图

Nginx:静态Web服务器

Gitlab-Shell:用于处理Git命令和修改authorized keys列表,gitlab是以Git为底层的,操作实际上最后就是调用gitlab-shell命令进行处理。

Gitlab-Workhorse:轻量级的反向代理服务器

Logrotate:日志文件管理工具

Postgresql:数据库

Redis:缓存数据库

Sidekiq:用于在后台执行队列任务(异步执行)

Unicorn:GitLab Rails应用是托管在这个服务器上面的

工作流程图

GitLab工作流

较为完整的逻辑序列,覆盖整个软件开发过程生命周期;从IDea到Production抽象为10个步骤

 GitLab和兴概念:Merge Request 和Fork

Merge Request:简单理解在本地修改完成后,通过Merge Request请求,Review之后和并到Master,我们修改的操作和修改都是在本地进行的

 Fork:在服务器上的代码库镜像出来一份,不会影响源库

 

GitLab CI/Pipeline 流水线图

 

 搭建GitLab

[root@localhost ~]# docker pull gitlab/gitlab-ce:14.2.6-ce.0
[root@localhost ~]# docker run -it  -p 4433:443 -p 82:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /opt/devops/gitlab/logs:/var/log/gitlab -v /opt/devops/gitlab/data:/var/opt/gitlab 3551732de712

配置

修改配置文件

1、修改配置文件:添加对外的访问地址

[root@localhost ~]# vim /home/gitlab/config/gitlab.rb

 

 [root@localhost gitlab]# docker container restart gitlab

 2、修改gitlab克隆的对外的地址和端口

[root@localhost gitlab]# vim /opt/devops/gitlab/data/gitlab-rails/etc/gitlab.yml 

 3、重启 修改管理员密码

[root@localhost gitlab]# docker container restart gitlab

[root@localhost trusted-certs]# docker container exec -it gitlab /bin/bash
root@4c5bee21f537:/#  cd /opt/gitlab/bin/  【切换到/opt/gitlab/bin/目录中】

root@4c5bee21f537:/opt/gitlab/bin# gitlab-rails console -e production

irb(main):001:0> u=User.where(id:1).first    【在irb(main):001:0>后输入;这个是查找root,查找所有的用户user.all】

irb(main):002:0> u.password='xxxxxxx'  【在irb(main):002:0> 后输入密码】

irb(main):003:0> u.password_confirmation='xxxxxx' 【在irb(main):002:0> 后再次确认密码】

irb(main):004:0> u.save!   【在irb(main):002:0> 保存】

irb(main):005:0> exit   【退出】

4、 访问地址

 

 

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐