Files
bruno 8c3881bf89 🚀 feat: 企业级CI/CD基础设施完整部署方案
✨ 新功能:
- 一键自动化部署脚本 (build-infra.sh)
- 统一端口配置 (3开头端口,避免冲突)
- 多平台Docker构建支持 (AMD64 + ARM64)
- Jenkins Configuration as Code (零手动配置)
- 完整的服务验证和健康检查

🏗️ 核心组件:
- Jenkins LTS + JDK21 (端口38080)
- Gitea 1.21 (端口33000, SSH: 32222)
- Docker Registry + UI (端口35001/35002)
- 统一cicd-network网络

📋 管理工具:
- 自动化部署和验证脚本
- 健康检查和日志管理工具
- 完整的文档和故障排查指南

🎯 已验证功能:
- 所有服务正常启动和运行
- API和Web界面完全可访问
- 多平台构建环境就绪
- 完整的CI/CD流水线支持

适用环境: Mac Studio M2 + Docker Desktop
2025-08-23 22:11:50 +08:00

60 lines
1.4 KiB
YAML

services:
ljwx-jenkins:
build:
context: ./jenkins/setup
dockerfile: Dockerfile-basic
image: ljwx-jenkins:latest
container_name: ljwx-jenkins
restart: unless-stopped
ports:
- "8081:8080"
- "50000:50000"
volumes:
- ljwx-jenkins-data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
environment:
- JENKINS_OPTS=--httpPort=8080
- JAVA_OPTS=-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200
- JENKINS_ADMIN_ID=admin
- JENKINS_ADMIN_PASSWORD=admin123
- DOCKER_REGISTRY=localhost:5003
- GITEA_URL=http://gitea:3000
- TZ=Asia/Shanghai
user: root
networks:
- cicd-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/login"]
interval: 30s
timeout: 10s
retries: 5
start_period: 300s
labels:
- "project=ljwx"
- "service=jenkins"
ljwx-registry:
image: registry:2
container_name: ljwx-registry
restart: unless-stopped
ports:
- "5003:5000"
volumes:
- ljwx-registry-data:/var/lib/registry
environment:
- REGISTRY_STORAGE_DELETE_ENABLED=true
networks:
- cicd-network
networks:
cicd-network:
driver: bridge
name: ljwx-cicd-network
volumes:
ljwx-jenkins-data:
driver: local
name: ljwx-jenkins-data
ljwx-registry-data:
driver: local
name: ljwx-registry-data