Files
sczx_web/Jenkinsfile
2025-07-18 15:34:48 +08:00

92 lines
2.6 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

pipeline {
agent {
dockerfile {
// 使用当前目录下的 Dockerfile.buildagent
filename "Dockerfile.buildagent"
}
}
tools {
maven 'M3' // 必须在 Jenkins → Manage Jenkins → Global Tool Configuration 中配置过
}
environment {
APP_NAME = "sczx_web"
DOCKER_IMAGE = "${APP_NAME}:latest"
CONTAINER_NAME = "${APP_NAME}-container"
}
stages {
stage('Checkout') {
steps {
echo "📦 正在拉取代码..."
git branch: 'master', url: 'http://115.190.8.52:3000/sczx_group/sczx_web.git'
}
}
stage('Build with Maven') {
steps {
echo "🛠️ 正在使用 Maven 构建..."
sh '''
mvn clean package -s settings.xml
'''
}
}
stage('Check Jar File') {
steps {
sh 'ls -la ruoyi-admin/target/' // 确保 jar 文件存在
}
}
// 检查是否可以使用宿主机docker
stage('Check Docker') {
steps {
sh 'docker --version'
}
}
stage('Build Docker Image') {
steps {
echo "🐋 正在构建 Docker 镜像..."
script {
// 使用宿主机的 docker不在构建容器中执行 docker build
sh 'docker build -t $DOCKER_IMAGE .'
}
}
}
stage('Stop Old Container') {
steps {
echo "🛑 正在停止旧的容器(如果存在)..."
sh '''
if [ "$(docker ps -f 'name=sczx_web-container' --format '{{.Status}}')" ]; then
docker stop sczx_web-container
docker rm sczx_web-container
fi
'''
}
}
stage('Run New Container') {
steps {
echo "🟢 正在运行新的容器..."
sh """
docker run -d \
--name \${CONTAINER_NAME} \
--network sczx-net \
-p 8098:8098 \
-e JAVA_OPTS="-Xms256m -Xmx512m -Duser.timezone=Asia/Shanghai" \
--restart always \
\${DOCKER_IMAGE}
"""
}
}
}
post {
success {
echo "🎉 构建成功!"
}
failure {
echo "❌ 构建失败,请检查日志!"
}
}
}