pipeline { agent any triggers { // 可选:通过 Webhook 自动触发 GenericTrigger( genericVariables: [], token: "sczx-app-webhook-token", causeString: 'Triggered by Gitea Webhook' ) } environment { // 环境变量 APP_NAME = "sczx-app" DOCKER_IMAGE = "${APP_NAME}:latest" CONTAINER_NAME = "${APP_NAME}-container" } stages { stage('Checkout') { steps { echo "📦 正在拉取代码..." git branch: 'main', url: 'https://gitea-url/sczx_group/sczx-app.git' } } stage('Build with Maven') { steps { echo "🛠️ 正在使用 Maven 构建..." sh 'mvn clean package' } } stage('Build Docker Image') { steps { echo "🐋 正在构建 Docker 镜像..." sh """ docker build -t ${DOCKER_IMAGE} . """ } } stage('Stop Old Container') { steps { echo "🛑 正在停止旧的容器(如果存在)..." sh """ if [ "$(docker ps -f "name=${CONTAINER_NAME}" --format "{{.Status}}")" ]; then docker stop ${CONTAINER_NAME} docker rm ${CONTAINER_NAME} fi """ } } stage('Run New Container') { steps { echo "🟢 正在运行新的容器..." sh """ docker run -d \ --name ${CONTAINER_NAME} \ -p 8088:8088 \ --restart always \ ${DOCKER_IMAGE} """ } } } post { success { echo "🎉 构建成功!" } failure { echo "❌ 构建失败,请检查日志!" } } }