上官泰 发表于 2025-6-14 12:59:39

GitLab介绍及Docker部署GitLab

概述

官方文档:https://docs.gitlab.com/?tab=Use+GitLab
GitHub地址:https://github.com/gitlabhq/gitlabhq
GitLab 是一个基于 Git 的开源分布式版本控制系统,最初由荷兰开发者 Dmitriy Zaporozhets 和 Valery Sizov 于 2011 年创建。它不仅是代码托管平台,更是一个集成了 DevOps 全生命周期管理的协作工具,帮助团队实现从代码开发、测试、部署到运维的全流程自动化。
截至 2025 年,GitLab 已成为全球最受欢迎的 DevOps 平台之一,被广泛应用于企业级软件开发,例如微软、IBM、NASA 等机构均在使用。
GitLab架构图:
https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614125118351-2147117321.png
功能特点

版本控制


[*]基于 Git 的代码管理:GitLab 使用 Git 作为其底层版本控制系统,支持代码的分支管理、合并请求、版本回溯等功能。开发者可以通过分支进行独立开发,然后通过合并请求将代码合并到主分支,确保代码的版本控制和变更管理有序进行。
[*]代码审查与合并请求:GitLab 提供了强大的代码审查功能。开发者提交代码后,其他团队成员可以通过合并请求进行代码审查。审查者可以查看代码的变更、添加评论、提出修改意见等。只有在代码通过审查后,才能合并到主分支,从而保证代码的质量。
[*]代码仓库管理:用户可以轻松创建、克隆和管理代码仓库。GitLab 支持多种仓库权限设置,如公开仓库、私有仓库和内部仓库,满足不同项目的保密性和共享需求。例如,一个开源项目可以设置为公开仓库,方便全球开发者参与;而企业内部的核心代码则可以设置为私有仓库,仅限授权人员访问。
持续集成与持续部署(CI/CD)


[*]内置 CI/CD 流水线:GitLab 提供了强大的内置 CI/CD 功能。开发者可以在代码仓库中配置 .gitlab-ci.yml 文件,定义项目的构建、测试和部署流程。当代码提交或合并请求触发时,GitLab CI/CD 会自动执行线流水任务,包括代码编译、单元测试、代码质量检查、自动化部署等。例如,一个 Web 应用项目可以在代码提交后自动运行测试用例,如果测试通过,则将应用部署到测试环境,大大提高了开发效率和软件交付速度。
[*]多环境部署支持:GitLab 支持多种部署环境,如开发环境、测试环境和生产环境。开发者可以通过配置文件指定不同环境的部署策略和参数,实现一键式多环境部署。例如,开发团队可以在开发环境中快速迭代代码,经过测试环境验证后,一键将应用部署到生产环境,减少人为操作错误。
项目管理


[*]任务管理与看板:GitLab 提供了类似敏捷开发的项目管理功能。用户可以创建任务(Issue)、分配任务给团队成员、设置任务优先级和截止日期等。同时,GitLab 的看板功能可以将任务按照不同状态(如待办、进行中、已完成)进行可视化展示,方便团队成员实时了解项目进度。
[*]里程碑管理:项目管理者可以为项目设置里程碑,将任务分配到不同的里程碑中。里程碑可以帮助团队明确项目阶段目标和交付时间,确保项目按计划推进。例如,一个软件开发项目可以设置多个里程碑,如需求分析里程碑、设计里程碑、开发里程碑和上线里程碑,每个里程碑包含一系列相关任务。
[*]文档管理:GitLab 支持在代码仓库中创建和管理文档,如项目文档、开发文档、用户手册等。文档可以使用 Markdown 语法编写,方便团队成员阅读和编辑。同时,GitLab 还提供了文档版本控制功能,确保文档的变更可以追溯。
团队协作


[*]多用户支持与权限管理:GitLab 支持多用户协作,团队成员可以根据角色和权限访问项目。项目所有者可以为不同用户分配不同的权限,如读取权限、写入权限、管理权限等。例如,开发人员可以有代码提交和修改权限,而测试人员可以有代码审查和测试权限,确保团队协作的安全性和高效性。
[*]讨论与评论功能:GitLab 提供了丰富的讨论和评论功能。团队成员可以在代码、任务、合并请求等地方发表评论、进行讨论。这些讨论记录会保留下来,方便团队成员回顾和查阅,促进团队沟通和协作。
[*]Web 挂钩和集成:GitLab 支持与其他工具和平台的集成,如 Slack、Jira、Docker 等。通过 Web 挂钩,GitLab 可以将项目事件(如代码提交、任务更新)自动推送到其他工具中,实现团队协作的无缝衔接。例如,当有新的代码提交时,GitLab 可以自动将消息发送到 Slack 群组,提醒团队成员关注。
部署方式

开源版本(GitLab Community Edition)


[*]免费使用:GitLab CE 是完全开源的版本,用户可以免费下载和使用。它提供了 GitLab 的基本功能,包括代码管理、项目管理、CI/CD 等。开源版本适合中小团队和开源项目使用,用户可以根据自己的需求进行定制和扩展。
[*]自行部署:用户需要自行搭建服务器环境,安装和配置 GitLab。虽然部署过程需要一定的技术知识,但用户可以完全掌控系统的运行环境和数据存储方式。例如,一个小型创业团队可以使用开源版本搭建在本地服务器上,节省成本。
企业版(GitLab Enterprise Edition)


[*]付费使用:GitLab EE 是针对企业用户的付费版本。它在开源版本的基础上增加了更多高级功能,如高级的权限管理、审计日志、LDAP 集成、高级的/ CICD 功能等。这些功能可以帮助企业更好地管理复杂的项目和团队,满足企业的安全性和合规性要求。
[*]多种部署方式:企业版支持多种部署方式,包括在本地服务器部署、在云平台部署(如 AWS、Azure)以及使用 GitLab 提供的 SaaS 服务(GitLab.com)。企业可以根据自身的资源和需求选择合适的部署方式。例如,大型企业可能会选择在本地服务器部署,以确保数据的安全性和自主性;而一些中小型企业可能会选择使用 GitLab.com,方便快速部署和使用。
SaaS 服务(GitLab.com)


[*]托管服务:GitLab.com 是 GitLab 提供的 SaaS 服务,用户无需自行搭建服务器环境,直接在 GitLab.com 上注册账号并使用。它提供了基本的开源版本功能和部分企业版功能,适合个人开发者、小型团队和开源项目使用。使用 SaaS 服务可以节省硬件成本和运维成本,用户可以专注于开发工作。
[*]免费与付费套餐:GitLab.com 提供了免费套餐和多种付费套餐。免费套餐包含基本的代码托管、项目管理等功能,但有一些使用限制,如仓库大小限制、CI/CD 任务数量限制等。付费套餐则提供了更多的功能和更高的资源配额,用户可以根据项目需求选择合适的套餐。
Docker部署GitLab CE

参考网址:https://docs.gitlab.com/install/docker/installation/
配置SSH端口

默认情况下,GitLab 使用 port22通过 SSH 与 Git 交互
修改SSH端口
# vim /etc/ssh/sshd_config# 默认为22,修改为2222Port 2222## 重启sshd服务# systemctl restart sshd编写Docker Compose文件

# cat docker-compose.yamlservices:gitlab:    image: docker.m.daocloud.io/gitlab/gitlab-ce:16.5.10-ce.0    container_name: gitlab    restart: always    hostname: '10.0.0.20'    environment:      GITLAB_OMNIBUS_CONFIG: |      external_url 'http://10.0.0.20'      gitlab_rails['smtp_enable'] = false      gitlab_rails['registry_enabled'] = false      registry['enable'] = false      prometheus['enable'] = false      alertmanager['enable'] = false      node_exporter['enable'] = false      redis_exporter['enable'] = false      postgres_exporter['enable'] = false    ports:      - '22:22'      - '443:443'      - '80:80'    volumes:      - '/data/gitlab/config:/etc/gitlab'      - '/data/gitlab/logs:/var/log/gitlab'      - '/data/gitlab/data:/var/opt/gitlab'创建数据目录

# mkdir -p/data/gitlab/{config,logs,data}启动gitlab

# docker-compose up -d[+] Running 2/2 ✔ Network gitlab_defaultCreated                                                                                                                                                       0.0s ✔ Container gitlab      Started# 检查一下# docker ps -aCONTAINER ID   IMAGE                                                COMMAND             CREATED         STATUS                   PORTS                                                                                                               NAMES13be8dbc138b   docker.m.daocloud.io/gitlab/gitlab-ce:16.5.10-ce.0   "/assets/wrapper"   3 minutes ago   Up 3 minutes (healthy)   0.0.0.0:22->22/tcp, [::]:22->22/tcp, 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp   gitlab访问gitlab

http://10.0.0.20
默认用户名为:root
默认的密码需要查看文件.
# cat /data/gitlab/config/initial_root_password# WARNING: This value is valid only in the following conditions#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).#          2. Password hasn't been changed manually, either via UI or via command line.##          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: yQaKVjqDN/nQcf4uG2UfkaMy0/vSiMFjWXFOiJNns4k=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614142840349-1790060674.png
配置GitLab

修改admin密码

第一件事应该修改一下密码,因为默认的密码有效期只有24小时
https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614143006459-227020689.png
https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614143044852-1087080680.png
配置时区

https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614143234169-1917173084.png
配置中文和星期

https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614143406977-1502782448.png
配置ssh密钥

https://img2024.cnblogs.com/blog/3468887/202506/3468887-20250614143853132-596543106.png

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: GitLab介绍及Docker部署GitLab