✨ 新功能: - 一键自动化部署脚本 (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
50 lines
1.3 KiB
Plaintext
50 lines
1.3 KiB
Plaintext
FROM jenkins/jenkins:lts-jdk21
|
|
|
|
# 切换到root用户安装系统依赖
|
|
USER root
|
|
|
|
# 安装基础工具
|
|
RUN apt-get update && apt-get install -y \
|
|
curl \
|
|
wget \
|
|
git \
|
|
unzip \
|
|
python3 \
|
|
python3-pip \
|
|
python3-venv \
|
|
build-essential \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# 切换回jenkins用户
|
|
USER jenkins
|
|
|
|
# 跳过初始设置向导
|
|
ENV JAVA_OPTS="-Djenkins.install.runSetupWizard=false -Djenkins.install.InstallUtil.lastExecVersion=2.504.3"
|
|
|
|
# 设置环境变量
|
|
ENV JENKINS_USER=admin
|
|
ENV JENKINS_PASS=admin123
|
|
ENV JENKINS_ADMIN_ID=admin
|
|
ENV JENKINS_ADMIN_PASSWORD=admin123
|
|
|
|
# 复制基础插件列表
|
|
COPY plugins-basic.txt /usr/share/jenkins/ref/plugins.txt
|
|
|
|
# 安装插件(忽略失败的插件)
|
|
RUN jenkins-plugin-cli --plugin-file /usr/share/jenkins/ref/plugins.txt || true
|
|
|
|
# 复制完整初始化脚本
|
|
COPY complete-init.groovy /usr/share/jenkins/ref/init.groovy.d/complete-init.groovy
|
|
|
|
# 创建必要的目录
|
|
RUN mkdir -p /var/jenkins_home/.m2 \
|
|
&& mkdir -p /var/jenkins_home/.gradle \
|
|
&& mkdir -p /var/jenkins_home/.npm \
|
|
&& mkdir -p /var/jenkins_home/.cache
|
|
|
|
# 暴露端口
|
|
EXPOSE 8080 50000
|
|
|
|
# 设置健康检查
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5m --retries=3 \
|
|
CMD curl -f http://localhost:8080/login || exit 1 |