pipeline { agent any // tools { // maven 'M3' // } environment { APP_NAME = "sczx_gateway" DOCKER_IMAGE = "${APP_NAME}:latest" CONTAINER_NAME = "${APP_NAME}-container" } stages { // stage('Checkout') { // steps { // echo "📦 正在拉取代码..." // git branch: 'main', url: 'http://115.190.8.52:3000/sczx_group/sczx_gateway.git' // } // } stage('Build with Maven in JDK 8') { agent { dockerfile { filename "Dockerfile.buildagent" } } steps { echo "🛠️ 正在使用 Maven 构建..." sh 'mvn clean package -s settings.xml' } } stage('Check Jar File') { agent any steps { sh 'ls -la target/' // 确保 jar 文件存在 } } stage('Build Docker Image') { agent any steps { echo "🐋 正在构建 Docker 镜像..." sh """ docker build -t \${DOCKER_IMAGE} . """ } } stage('Stop Old Container') { agent any steps { echo "🛑 正在停止旧容器..." sh ''' if [ "$(docker ps -f 'name=sczx_gateway-container' --format '{{.Status}}')" ]; then docker stop sczx_gateway-container docker rm sczx_gateway-container fi ''' } } stage('Run New Container') { agent any steps { echo "🟢 正在运行新容器..." sh """ docker run -d \ --name \${CONTAINER_NAME} \ --network sczx-net \ -p 8089:8089 \ -e JAVA_OPTS="-Xms256m -Xmx256m -Duser.timezone=Asia/Shanghai" \ -e TZ=Asia/Shanghai \ -v /etc/localtime:/etc/localtime:ro \ -v /root/log/sczx-gateway:/app/logs \ --memory="512m" \ --memory-swap="512m" \ --restart always \ \${DOCKER_IMAGE} """ } } } post { success { echo "🎉 构建成功!网关已部署到 Docker 容器中。" } failure { echo "❌ 构建失败,请检查日志!" } } }