项目简介
本项目是基于Docker和GitLab的DevOps自动化部署系统,为开发团队提供完整的持续集成和持续部署(CI/CD)解决方案。借助Docker容器化技术,结合GitLab及其自带的GitLab Runner,实现从代码提交到自动化构建、测试、部署的全流程管理。项目支持LDAP、JIRA、Confluence、SonarQube、Nexus等多种工具集成,可满足企业级开发环境需求。
项目的主要特性和功能
- GitLab集成:以GitLab为代码仓库,通过GitLab Runner实现自动化构建和部署。
- LDAP认证:集成OpenLDAP和phpldapadmin,实现统一的用户认证和管理。
- JIRA & Confluence集成:支持JIRA和Confluence自动化部署,便于项目管理与文档协作。
- SonarQube代码质量检查:集成SonarQube,提供代码质量分析和报告。
- Nexus私有仓库:以Nexus作为私有Maven仓库,管理依赖包和构建产物。
- 反向代理与SSL支持:利用Nginx实现反向代理,支持SSL加密保障数据传输安全。
- 上网代理:提供SOCKS5代理服务,支持PAC模式和全局代理模式,方便访问外网资源。
- Docker Compose部署:所有服务通过Docker Compose进行容器化部署,简化环境搭建和配置管理。
安装使用步骤
1. 环境准备
- 安装Docker:
bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
按需配置国内镜像源。 - 安装Docker Compose:
bash sudo chmod +x /usr/local/bin/docker-compose
- 开启IPv4 IP forward(可选):
编辑
/etc/sysctl.conf
,添加或修改:bash net.ipv4.ip_forward=1
然后重启网络和Docker:bash systemctl restart network systemctl restart docker
- 配置SELinux权限(若需挂载主机目录):
bash chcon -Rt svirt_sandbox_file_t /srv/mysql
- 配置防火墙:
按需开放端口,例如:
bash firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
2. 部署服务
- DNS服务:使用dnsmasq提供内网域名解析服务,配置文件在
./etc_dnsmasq.conf
、./etc_resolv.dnsmasq
和./etc_dnsmasq.hosts
。 - 反向代理:用Nginx进行反向代理,配置文件在
./conf.d
目录。 - LDAP服务:使用OpenLDAP和phpldapadmin进行用户管理,配置文件在
./ssl
目录。 - JIRA & Confluence:用Docker Compose部署JIRA和Confluence,配置文件在
./mysql
目录。 - GitLab:用Docker Compose部署GitLab,配置文件在
gitlab-config
卷中。 - SonarQube:用Docker Compose部署SonarQube,插件可放于
sonar-extensions
卷的plugins
目录。 - Nexus:用Docker Compose部署Nexus,配置文件在
nexus-data
卷中。 - 上网代理:用
sgrio/alpine-sslocalproxy
容器提供SOCKS5代理服务,配置文件在./ss-client.json
。
3. 启动服务
在项目根目录下执行以下命令启动所有服务:
bash
docker-compose up -d
4. 验证部署
- 访问GitLab:
https://gitlab.example.com
- 访问JIRA:
https://jira.example.com
- 访问SonarQube:
https://sonar.example.com
- 访问Nexus:
https://nexus.example.com
通过上述步骤,可成功部署并运行本系统。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】