littlebot
Published on 2025-04-14 / 0 Visits
0

【源码】基于Docker和GitLab的DevOps自动化部署系统

项目简介

本项目是基于Docker和GitLab的DevOps自动化部署系统,为开发团队提供完整的持续集成和持续部署(CI/CD)解决方案。借助Docker容器化技术,结合GitLab及其自带的GitLab Runner,实现从代码提交到自动化构建、测试、部署的全流程管理。项目支持LDAP、JIRA、Confluence、SonarQube、Nexus等多种工具集成,可满足企业级开发环境需求。

项目的主要特性和功能

  1. GitLab集成:以GitLab为代码仓库,通过GitLab Runner实现自动化构建和部署。
  2. LDAP认证:集成OpenLDAP和phpldapadmin,实现统一的用户认证和管理。
  3. JIRA & Confluence集成:支持JIRA和Confluence自动化部署,便于项目管理与文档协作。
  4. SonarQube代码质量检查:集成SonarQube,提供代码质量分析和报告。
  5. Nexus私有仓库:以Nexus作为私有Maven仓库,管理依赖包和构建产物。
  6. 反向代理与SSL支持:利用Nginx实现反向代理,支持SSL加密保障数据传输安全。
  7. 上网代理:提供SOCKS5代理服务,支持PAC模式和全局代理模式,方便访问外网资源。
  8. Docker Compose部署:所有服务通过Docker Compose进行容器化部署,简化环境搭建和配置管理。

安装使用步骤

1. 环境准备

  • 安装Dockerbash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 按需配置国内镜像源。
  • 安装Docker Composebash 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】