GitLab介绍
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。
以下是 GitLab 的一些主要特点和功能:
- 代码托管: GitLab 提供了强大的 Git 仓库管理功能,用户可以轻松地创建、克隆、推送和拉取代码,实现团队协作开发。
- 问题追踪: 用户可以在 GitLab 中创建和管理问题、任务和缺陷报告,方便团队成员跟踪和解决项目中的各种事务。
- 持续集成/持续部署 (CI/CD): GitLab 提供了内置的 CI/CD 功能,支持自动化构建、测试和部署应用程序,帮助团队实现快速交付和持续集成。
- 代码审核: GitLab 提供了代码审核功能,可以进行代码评审、审查和讨论,帮助团队改善代码质量和合作效率。
- 权限管理: GitLab 具有灵活的权限管理机制,管理员可以根据需要设置不同用户或团队的访问权限,保护代码和项目的安全性。
- 集成插件: GitLab 支持与其他 DevOps 工具和服务的集成,如 Jira、Slack、Kubernetes 等,帮助用户构建完整的开发和部署流程。
- 自托管选项: 除了 GitLab 的托管服务之外,用户还可以选择在自己的服务器上部署 GitLab,实现自主控制和定制化需求。
GitLab 的功能丰富且易于使用,适用于个人开发者、小型团队和大型企业,帮助他们更高效地管理代码、协作开发并实现持续交付。GitLab 的开源版本和商业版本提供了不同的功能和服务,满足了不同用户的需求。
官网地址:https://about.gitlab.com/solutions/devops-platform/
GitLab安装
下载镜像
方式一:使用下列命令即可在线拉取拉取gitlab镜像,但是镜像很大。
docker pull gitlab/gitlab-ce:latest
效果如下:
[root@localhost tmp]# docker load -i gitlab-ce.tar ad9512736d82: Loading layer [==================================================>] 21.45MB/21.45MB cb069c85decc: Loading layer [==================================================>] 798.7kB/798.7kB e8a079aa9e5c: Loading layer [==================================================>] 2.048kB/2.048kB 9f3f137f705c: Loading layer [==================================================>] 2.048kB/2.048kB d01ad5c6ecc4: Loading layer [==================================================>] 2.048kB/2.048kB 16731fb67f55: Loading layer [==================================================>] 22.02kB/22.02kB 01266706d081: Loading layer [==================================================>] 2.334GB/2.334GB Loaded image: gitlab/gitlab-ce:latest [root@localhost tmp]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE gitlab/gitlab-ce latest 46cd6954564a 11 months ago 2.36GB rabbitmq 3.8-management 699038cb2b96 12 months ago 250MB [root@localhost tmp]#
创建gitlab容器
#创建数据目录 mkdir -p /home/gitlab/config mkdir -p /home/gitlab/logs mkdir -p /home/gitlab/data #创建容器 docker run -d \ --hostname localhost -p 443:443 -p 80:80 -p 1024:22 \ --name gitlab \ -v /home/gitlab/config:/etc/gitlab \ -v /home/gitlab/logs:/var/log/gitlab \ -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
进入容器中查看GitLab启动状态
进入容器
docker exec -it gitlab bash
查看状态容器中GitLab的运行状态
gitlab-ctl status
效果如下:
启动需要的时间较长,当看到所有15个服务
都是run状态之后才能成功访问。
查看日志
# 查看GitLab所有的logs,用于观察GitLab是否启动完成 按 Ctrl-C 退出 gitlab-ctl tail
注意:gitlab依赖的服务较多,启动所需内存官方建议为4G以上,不要立马就访问要等两三分钟左右。
等启动完毕,浏览器访问:http://192.168.100.132:80,效果如下图:
配置SSH访问端口
# 进入容器 docker exec -it gitlab /bin/bash # 编辑gitlab.rb文件 vi /etc/gitlab/gitlab.rb # 进入文件编辑,跳转到文件末位 G # 把下面这3个配置放到文件末尾 # 配置http协议所使用的访问地址,不加端口号默认为80 external_url 'http://192.168.100.132' # 配置ssh协议所使用的访问地址和端口 # 此端口是run时22端口映射的1024端口 gitlab_rails['gitlab_ssh_host'] = '192.168.100.132' gitlab_rails['gitlab_shell_ssh_port'] = 1024 # 退出文件编辑 :wq # 重新配置gitlab gitlab-ctl reconfigure
下面命令不用,了解即可。
# 拉取/var/log/gitlab下子目录的日志 gitlab-ctl tail gitlab-rails # 拉取某个指定的日志文件 gitlab-ctl tail nginx/gitlab_error.log # 启动 gitlab 服务 gitlab-ctl start # 停止 gitlab 服务 gitlab-ctl stop
修改账号密码
初始化 gitlab 中的 root 账号密码:
1、登录容器
docker exec -it -u root gitlab /bin/bash
2、登录GitLab的Rails控制台
gitlab-rails console
等待一段时间后,可以在控制台中输入命令
3、定位到root用户
user = User.where(id: 1).first
4、修改root密码
# 执行下面的命令,将 xxxxx 改为自己的密码 # 注意:密码至少需要8个字符 user.password='cxypa123456' # 修改后,保存用密码 user.save
5、下面命令不用,了解即可。
# 查询所有的用户 user = User.all # 通过条件查询用户 常见的where条件有 username email state user = User.where(id:1).first user = User.find_by(email: 'admin@local.host') # 通过id查询用户 user = User.find(1) # 查询用户某个字段的值 显示当前用户的email user.email # 修改密码 user.password = 'cxypa123456' user.password_confirmation = 'cxypa123456' user.save echo 'user = User.find_by(username: "root");user.password="secret_pass!";user.password_confirmation="secret_pass!";user.save' | sudo gitlab-rails console # 修改用户状态 user.state = 'active' user.save
使用root账号登录
来到登录页面,使用root账号和刚才设置的密码登录gitlab。效果如下图:
登录后的效果:
到此就完成了gitlab的安装和登录。