From 344507ce5c521caca3771607e14c316791951bb1 Mon Sep 17 00:00:00 2001 From: cat_shark <1716967236@qq.com> Date: Thu, 17 Jul 2025 09:08:44 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E6=B0=B4=E7=BA=BF=E9=85=8D=E7=BD=AE=EF=BC=88=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DockerFile | 14 ++++++++++++++ Jenkinsfile | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 DockerFile diff --git a/DockerFile b/DockerFile new file mode 100644 index 0000000..7f35373 --- /dev/null +++ b/DockerFile @@ -0,0 +1,14 @@ +# 使用官方 OpenJDK 作为基础镜像 +FROM eclipse-temurin:17-jre + +# 设置工作目录 +WORKDIR /app + +# 拷贝打包好的 JAR 文件到容器 +COPY target/myapp.jar app.jar + +# 暴露应用运行的端口 +EXPOSE 8081 + +# 启动应用 +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/Jenkinsfile b/Jenkinsfile index ee29d03..69cd791 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,13 +2,44 @@ pipeline { agent { docker { image 'maven:3.9.6-eclipse-temurin-17' - args '-v /root/.m2:/root/.m2' + 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' + 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 + ''' + } } } }