pipeline { agent { docker { image 'maven:3.9.6-eclipse-temurin-17' args '-v /root/.m2:/root/.m2' } } environment { IMAGE_NAME = 'LPT:0.0' CONTAINER_NAME = 'LPT' HOST_PORT = '8081' CONTAINER_PORT = '8081' } stages { stage('Build') { steps { sh 'mvn -B -DskipTests clean package' } } stage('Build Docker Image') { steps { script { // 切换到宿主环境调用 docker 命令 docker.image('docker:24.0.7-cli').inside('--entrypoint="" -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:/workspace -w /workspace') { sh ''' docker build -t $IMAGE_NAME . ''' } } } } stage('Run Docker Container') { steps { script { // 先尝试删除旧容器(如果存在) sh ''' docker rm -f $CONTAINER_NAME || true docker run -d --name $CONTAINER_NAME -p $HOST_PORT:$CONTAINER_PORT $IMAGE_NAME ''' } } } } }