#!/bin/bash # Jenkins Docker部署脚本 - 支持JDK 17 # 使用方法: ./deploy-jenkins.sh set -e echo "🚀 开始部署Jenkins with JDK 17..." # 检查Docker是否安装 if ! command -v docker &> /dev/null; then echo "❌ Docker未安装,请先安装Docker" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "❌ Docker Compose未安装,请先安装Docker Compose" exit 1 fi # 创建必要的目录 mkdir -p jenkins_data mkdir -p jenkins-docker echo "📁 创建Jenkins配置目录..." # 设置权限 sudo chown -R 1000:1000 jenkins_data echo "🐳 构建并启动Jenkins容器..." # 进入jenkins-docker目录 cd jenkins-docker # 构建并启动服务 docker-compose up -d --build echo "⏳ 等待Jenkins启动..." sleep 30 # 检查容器状态 echo "📊 检查容器状态..." docker-compose ps # 获取Jenkins初始密码 echo "🔑 获取Jenkins初始密码..." if [ -f "../jenkins_data/secrets/initialAdminPassword" ]; then echo "Jenkins初始密码:" cat ../jenkins_data/secrets/initialAdminPassword else echo "等待Jenkins完全启动..." sleep 60 if [ -f "../jenkins_data/secrets/initialAdminPassword" ]; then echo "Jenkins初始密码:" cat ../jenkins_data/secrets/initialAdminPassword else echo "从容器中获取密码:" docker exec jenkins-custom cat /var/jenkins_home/secrets/initialAdminPassword 2>/dev/null || echo "密码文件还未生成,请稍后再试" fi fi echo "" echo "✅ Jenkins部署完成!" echo "🌐 访问地址: http://localhost:15008" echo "🌐 如果是远程服务器: http://YOUR_SERVER_IP:15008" echo "" echo "📋 配置信息:" echo " - Jenkins端口: 15008" echo " - SonarQube端口: 15010" echo " - 数据目录: ./jenkins_data" echo "" echo "🔧 接下来请:" echo "1. 浏览器访问Jenkins" echo "2. 使用上面的初始密码登录" echo "3. 安装推荐插件" echo "4. 创建管理员用户" echo "5. 配置项目Pipeline" # 显示容器日志 echo "" echo "📄 Jenkins启动日志 (最后20行):" docker logs --tail 20 jenkins-custom