一、什么是GitLab
1.1.GitLab简介
GitLab 是一个开源的 DevOps 平台,它基于 Git 版本控制系统提供了从项目规划、源代码管理到持续集成、持续部署、监控和安全的完整生命周期管理。GitLab 是一个为开发者提供协作工作的工具,它使得团队能够高效地在同一个应用程序内完成整个软件开发过程。
1.2.GitLab特点
**全功能的CI/CD:**GitLab 提供了内置的持续集成和持续部署(CI/CD)功能,使开发团队能够自动化代码的构建、测试和部署过程,从而提高软件交付的速度和质量。
**单一应用程序:**与需要集成多个独立工具的其他解决方案不同,GitLab 提供了一个单一的应用程序来处理开发生命周期中的所有阶段。这减少了维护成本,避免了插件不兼容的问题,并提高了效率。
**项目管理和议题跟踪:**GitLab 提供了灵活的问题跟踪系统,允许用户创建、管理和跟踪议题(issues)。团队可以使用看板(Kanban)板进行项目管理,规划迭代和跟踪进度。
**代码审查:**通过合并请求(Merge Requests, MRs),GitLab 提供了代码审查功能,以确保代码质量,并通过讨论来改进代码实现。
**安全和合规性:**GitLab 强调安全性,提供了动态和静态的应用程序安全测试、依赖扫描和容器扫描,以便在代码发布之前检测潜在的安全问题。
**集成:**尽管 GitLab 是一个全面的DevOps工具,它也提供了与其他工具(如JIRA、Slack、Kubernetes等)的集成能力,以便团队可以使用他们喜欢的工具。
**自托管和云托管选项:**GitLab 提供了多种部署选项,包括完全托管的GitLab.com服务以及可以在私有服务器上自托管的GitLab CE(社区版)和EE(企业版)。
**可扩展性和可定制性:**企业可以根据自己的需求定制和扩展 GitLab 的功能,例如通过使用API或编写自定义的GitLab CI的YAML文件。
**社区支持:**GitLab 拥有一个活跃的社区,用户可以从社区获得帮助,分享最佳实践,或者为GitLab的发展贡献代码。
**开源:**GitLab CE 是开源的,这意味着用户可以自由使用、修改和分发软件,这提供了高度的透明度和可定制性。
GitLab 作为一个综合性的 DevOps 平台,它的目标是简化软件开发工作流程,使开发、运维以及安全团队能够在一个连贯的环境中协同工作,从而加快交付速度,减少操作复杂性,并提高软件的质量和安全性。
GitLab地址:The most-comprehensive AI-powered DevSecOps platform | GitLab
二、前期准备
2.1.服务器准备
推荐浪浪云服务器,稳定!高防!!有保证!!!
浪浪云官方新上的活动,4H4G一年仅需要259,活动链接:浪浪云 - 提供高防 稳定 有保障
系统我这边使用的是centos,但是用的Docker部署,用其他操作系统同样可以
2.2.连接服务器
连接过程参考**浪浪云帮助文档,如果是独立IP正常走22的ssh端口即可
2.3.安装Docker以及Docker Compose
安装Docker,使用国内源
yum update #更新软件源
输入Y确定跟新,可以看到浪浪云的网速还是非常快的
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #安装Docker使用阿里源
检查Docker服务是否正常运行,确保Docker正常运行
[root@ECS3682 ~]# docker -v
Docker version 26.0.0, build 2ae903e
[root@ECS3682 ~]# systemctl start docker
[root@ECS3682 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2024-04-11 03:49:34 EDT; 2s ago
Docs: https://docs.docker.com
Main PID: 92646 (dockerd)
Tasks: 8
Memory: 33.4M
CGroup: /system.slice/docker.service
└─92646 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
4月 11 03:49:32 ECS3682 systemd[1]: Starting Docker Application Container Engine...
4月 11 03:49:32 ECS3682 dockerd[92646]: time="2024-04-11T03:49:32.905107057-04:00" level=info msg="Starting up"
4月 11 03:49:32 ECS3682 dockerd[92646]: time="2024-04-11T03:49:32.961431066-04:00" level=info msg="Loading containers: start."
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.188213741-04:00" level=info msg="Firewalld: interface docker0 already part of docker zone, retu>
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.382595216-04:00" level=info msg="Loading containers: done."
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.419428998-04:00" level=info msg="Docker daemon" commit=8b79278 containerd-snapshotter=false sto>
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.419677146-04:00" level=info msg="Daemon has completed initialization"
4月 11 03:49:34 ECS3682 dockerd[92646]: time="2024-04-11T03:49:34.467028373-04:00" level=info msg="API listen on /run/docker.sock"
4月 11 03:49:34 ECS3682 systemd[1]: Started Docker Application Container Engine.
安装Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s-
uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose #添加可执行权限
docker-compose --version #查看版本
三、正式部署GitLab
3.1.创建对应的目录以及配置文件
mkdir -p /data/gitlab/{data,logs,config} && cd /data/gitlab/
3.2.创建docker-compose.yml文件
vim /data/gitlab/docker-compose.yml
对应内容如下
version: "3"
services:
gitlab:
container_name: gitlab
image: gitlab/gitlab-ce:latest
hostname: '浪浪云ip'
restart: always
ports:
- 8011:8011
- 8443:443
- 2222:22/tcp
volumes: - /etc/localtime:/etc/localtime
- /data/gitlab/data:/var/opt/gitlab
- /data/gitlab/config:/etc/gitlab
- /data/gitlab/logs:/var/log/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url '浪浪云:8011'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
deploy:
resources:
limits:
memory: 4G
reservations:
memory: 1G
3.3.使用docker compose启动容器
docker compose up -d
如果速度过慢的话可以更改国内源
sudo vim /etc/docker/daemon.json
#添加如下配置文件
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
#保存配置文件
sudo systemctl daemon-reload
#重启Docker
sudo service docker restart
dokcer ps #容器状态
3.4.配置端口转发
推荐浪浪云服务器,稳定!高防!!有保证!!!
来到浪浪云服务器管理界面
转发上面对应的那几个端口号,如果是独立IP的话,就可以不用进行端口转发
通过浪浪云的IP:转发的80端口
四、GitLab设置
4.1.重置登录密码
进入容器
[root@docker gitlab]# docker exec -it gitlab /bin/bash
root@gitlab:/#
进入控制台
gitlab-rails console -e production
查询管理员密码
user = User.where(id:1).first
#修改密码
user.password='langlangyun'
保存
user.save!
退出
exit
4.2.设置为中文
在Preferences页面中,找到“Localization”区域,将“Language”选项修改为“简体中文”