From a921536f765b5a68c46caf194ba3a2a4f6585e6e Mon Sep 17 00:00:00 2001 From: cat_shark <1716967236@qq.com> Date: Wed, 8 Oct 2025 19:22:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(13):=20=E5=A2=9E=E5=8A=A0dev=E5=88=86?= =?UTF-8?q?=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile-dev | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Jenkinsfile-dev diff --git a/Jenkinsfile-dev b/Jenkinsfile-dev new file mode 100644 index 0000000..28441ab --- /dev/null +++ b/Jenkinsfile-dev @@ -0,0 +1,67 @@ +pipeline { + agent none // 全局不指定,局部自己声明 + environment { + IMAGE_NAME = 'lpt:0.0' + CONTAINER_NAME = 'LPT' + HOST_PORT = '5157' + CONTAINER_PORT = '5157' + } + stages { + stage('Build') { + agent { + docker { + image 'maven:3.9.6-eclipse-temurin-17' + args '-v /root/.m2:/root/.m2' + } + } + steps { + sh 'mvn -B -DskipTests clean package' + } + } + + stage('Build Docker Image') { + agent any // 使用 Jenkins 默认节点(宿主机),前提是宿主有 docker 命令 + steps { + sh 'docker build -t $IMAGE_NAME .' + } + } + + stage('Run Docker Container') { + agent any + steps { + sh ''' + docker rm -f $CONTAINER_NAME || true + docker run -d --name $CONTAINER_NAME --network mysql_default \\ + --restart=always \\ + -p $HOST_PORT:$CONTAINER_PORT -e SPRING_PROFILES_ACTIVE=dev \\ + --log-driver=loki \\ + --log-opt loki-url="http://192.168.123.199:3100/loki/api/v1/push" \\ + $IMAGE_NAME + ''' + } + } + + stage('Check Docker Status') { + agent any + steps { + script { + def lastStatus = '' + timeout(time: 60, unit: 'SECONDS') { + waitUntil { + def status = sh( + script: "docker inspect -f '{{.State.Health.Status}}' $CONTAINER_NAME || echo 'unhealthy'", + returnStdout: true + ).trim() + + if (status != lastStatus) { + echo "Container health: ${status}" + lastStatus = status + } + return (status == 'healthy') + } + } + } + } + } + } +}