Gitlab
# GitLab 项目管理和代码托管平台
开源网址
官网:https://about.gitlab.com/
# 简介
GitLab 是一个开源的代码托管和协作平台,旨在帮助开发团队更高效地管理代码、进行协作和持续集成/持续交付。它提供了一系列强大的功能,包括代码仓库管理、问题跟踪、持续集成、持续交付、代码审查、Wiki 文档、项目管理等,使开发团队能够在一个集成的平台上管理整个软件开发生命周期。
# 主要特性
GitLab 提供了许多功能,以支持团队在一个平台上协作开发和管理项目:
- 代码托管 :支持 Git 版本控制系统,团队可以在 GitLab 上创建和管理代码仓库,跟踪代码的历史变更,并支持分支和合并请求。
- 问题跟踪 :可以在 GitLab 上创建和管理项目中的问题、任务和需求。团队成员可以讨论、分配、标记和跟踪问题的状态。
- 持续集成/持续交付 :GitLab 提供了强大的 CI/CD(持续集成/持续交付)功能,可以自动化构建、测试和部署代码。用户可以配置流水线来实现自动化的软件交付流程。
- 代码审查 :支持合并请求(Merge Requests),团队成员可以创建合并请求并邀请其他成员审查代码变更。这有助于确保代码质量并促进团队合作。
- Wiki 文档 :每个项目都有一个集成的 Wiki,可以用来记录项目文档、知识库和指南。
- 项目管理 :GitLab 提供项目看板和里程碑等功能,帮助团队进行项目计划、任务跟踪和进度管理。
- 安全性 :GitLab 提供代码静态分析、容器扫描等安全功能,帮助识别和解决潜在的安全风险。
# 部署方式
GitLab 提供了不同的部署方式,以适应不同的需求:
- GitLab.com :GitLab 官方托管的 SaaS 版本,无需自行部署,适用于小型团队和个人开发者。
- 自托管 :用户可以自行在私有服务器上部署 GitLab,以获得更高的定制性和控制权,适用于企业和大型组织。
# 总结
GitLab 是一个功能丰富的开源代码托管和协作平台,帮助团队高效地进行代码管理、协作和持续集成/持续交付。无论是个人项目还是大型团队,GitLab 都提供了一系列工具来支持软件开发的各个方面。无论您是开发者、项目经理还是企业领导,GitLab 都是一个值得考虑的强大工具。
# docker-compose.yml
version: '3.7'
services:
gitlab:
container_name: gitlab
image: 'gitlab/gitlab-ce:15.2.2-ce.0'
restart: always
hostname: '10.142.51.100'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://10.142.51.100:1230'
gitlab_rails['gitlab_shell_ssh_port'] = 1232
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = ""
gitlab_rails['smtp_password'] = ""
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'ego_it@163.com'
gitlab_rails['initial_root_password'] = 'Gitlab123$'
ports:
- '1230:1230'
- '1231:443'
- '1232:22'
volumes:
- 'gitlab_data:/etc/gitlab'
- 'gitlab_log_data:/var/log/gitlab'
- 'gitlab_opt_data:/var/opt/gitlab'
volumes:
gitlab_data:
gitlab_log_data:
gitlab_opt_data:
# deploy.sh
#!\bin\bash
docker-compose up -d
# GitlabRunner
# docker-compose.yml
version: '3.7'
services:
gitlab-runner:
container_name: gitlab-runner
image: 'gitlab/gitlab-runner:v15.2.1'
restart: always
privileged: true
volumes:
- 'data:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- swarm_net
volumes:
data:
networks:
swarm_net:
external: true
# deploy.sh
#!\bin\bash
docker-compose up -d
# 注册流程
- docker in docker 方案
// 执行注册流程
docker exec -it gitlab-runner bash
gitlab-runner register
// 在交互式终端中填入 Git Lab 提供的 URL 和 token
[root@localhost-0002 GitLabRunner]# docker exec -it 8afd63e9abbb bash
root@8afd63e9abbb:/# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=33 revision=58272c27 version=12.7.0
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.0.123:1230/
Please enter the gitlab-ci token for this runner:
i6aQMeza7Hxa1t_bAjzT
Please enter the gitlab-ci description for this runner:
[8afd63e9abbb]:
Please enter the gitlab-ci tags for this runner (comma separated):
Registering runner... succeeded runner=i6aQMeza
Please enter the executor: custom, docker, docker-ssh, shell, docker+machine, docker-ssh+machine, kubernetes, parallels, ssh, virtualbox:
docker
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
docker:19.03.8
// 这里跳过了 description 与 tags ,tags表示什么时候触发,为空表示任何时候都触发,deploy表示部署时触发,下面是执行器,这里填入 docker
// 回到 GitLab ,可以看到已经注册成功
/usr/local/bin/docker-compose -f /data/composefile/GitLabRunner/docker-compose.yml down
docker system prune -f --volumes
/usr/local/bin/docker-compose -f /data/composefile/GitLabRunner/docker-compose.yml up -d
docker exec -it gitlab-runner sh
gitlab-runner --help
gitlab-runner restart
cat /etc/gitlab-runner/config.toml
vi /etc/gitlab-runner/config.toml
privileged = true
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
vi config.toml
上次更新: 2023/09/05, 21:16:45