使用Docker Compose搭建CI/CD环境是一种流行的做法,因为它允许你轻松地管理和部署多个服务。下面是一套基于Docker Compose的CI/CD平台推荐方案,包括Jenkins作为CI/CD工具,GitLab作为代码仓库,以及Nginx作为反向代理。此外,还包括了数据库和缓存服务,以支持这些工具的运行。
环境需求
- 操作系统:Linux(推荐CentOS 7或更高版本)
- 硬件配置:至少4GB RAM,推荐8GB或更多
- 网络端口:80 (HTTP), 443 (HTTPS), 22 (SSH), 50000 (Jenkins CLI)
工具和服务
- Docker 和 Docker Compose:用于容器化服务。
- Jenkins:持续集成和持续交付的服务器。
- GitLab:用于代码托管和管理CI/CD流程。
- Nginx:作为反向代理,用于负载均衡和SSL终止。
- MySQL 或 PostgreSQL:用于Jenkins和GitLab的数据存储。
- Redis:用于缓存和消息队列。
- GitLab Runner:用于执行CI/CD管道中的任务。
安装步骤
1. 主机准备
- 确保Linux系统已更新至最新状态。
- 安装必要的软件包,如
curl
,vim
等。 - 确保Docker和Docker Compose已正确安装。
2. 安装Docker和Docker Compose
# 安装Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3. 创建Docker Compose配置文件
创建一个名为 docker-compose.yml
的文件,内容如下:
version: '3.8'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/nginx/certs
depends_on:
- jenkins
- gitlab
jenkins:
image: jenkins/jenkins:lts
user: root
ports:
- "50000:50000"
volumes:
- jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
environment:
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
ports:
- "10080:80"
- "10022:22"
volumes:
- gitlab-config:/etc/gitlab
- gitlab-logs:/var/log/gitlab
- gitlab-data:/var/opt/gitlab
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: gitlabhq_production
MYSQL_USER: gitlab
MYSQL_PASSWORD: gitlabpassword
volumes:
- mysql-data:/var/lib/mysql
redis:
image: redis:alpine
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis-data:/data
gitlab-runner:
image: gitlab/gitlab-runner:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- gitlab-runner-config:/etc/gitlab-runner
volumes:
jenkins-data:
gitlab-config:
gitlab-logs:
gitlab-data:
mysql-data:
redis-data:
gitlab-runner-config:
4. 配置Nginx
创建 nginx.conf
文件,配置Nginx以正确地代理请求到Jenkins和GitLab。
5. 启动服务
docker-compose up -d
6. 配置Jenkins和GitLab
- 访问Jenkins和GitLab的Web界面,完成初始设置。
- 在Jenkins中安装推荐的插件,创建管理员账户。
- 在GitLab中创建管理员账户,配置GitLab Runner。
注意事项
- 确保所有服务的端口没有被其他服务占用。
- 调整
docker-compose.yml
文件中的环境变量以适应你的环境。 - 配置适当的防火墙规则,以允许外部访问必要的端口。
- 使用SSL证书保护你的网站,可以通过Let's Encrypt免费获得。
这套方案为你提供了一个基本的CI/CD环境,你可以根据项目的具体需求进行调整和扩展。
标签:compose,gitlab,cd,GitLab,docker,data,Docker From: https://www.cnblogs.com/wykang/p/18648760