From bb0d58d11d69f2af465023349b7b50a07d3a0d1f Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 12:36:37 +0000 Subject: [PATCH 01/17] update: Add workdir Signed-off-by: Error_Exception <3356804116@qq.com> --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2af69e9..b061da6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,4 @@ FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/vulhub/java:8u261-jdk -ADD target/SpringBootDemo-0.0.1-SNAPSHOT.jar boot-docker.jar -ENTRYPOINT ["java","-jar","/boot-docker.jar"] \ No newline at end of file +WORKDIR /app +ADD target/SpringBootDemo-0.0.1-SNAPSHOT.jar /app/boot-docker.jar +ENTRYPOINT ["java","-jar","/app/boot-docker.jar"] \ No newline at end of file -- Gitee From 7a21df701b0dadf1f88fc39bbb54e63c0801bc70 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 12:40:26 +0000 Subject: [PATCH 02/17] update cicd/k8s.yaml. use NodePort instead of ingress Signed-off-by: Error_Exception <3356804116@qq.com> --- cicd/k8s.yaml | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/cicd/k8s.yaml b/cicd/k8s.yaml index 2dbab58..8d9e02b 100644 --- a/cicd/k8s.yaml +++ b/cicd/k8s.yaml @@ -1,10 +1,10 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: demo + name: demo namespace: NAME_SPACE labels: - app: demo + app: demo spec: selector: matchLabels: @@ -12,11 +12,11 @@ spec: template: metadata: labels: - app: demo + app: demo spec: containers: - - name: demo - image: IMAGE_NAME + - name: demo + image: IMAGE_NAME resources: requests: cpu: 100m @@ -33,8 +33,8 @@ spec: path: /health port: 8888 ports: - - containerPort: 8888 - name: demo + - containerPort: 8888 + name: demo volumeMounts: - name: localtime mountPath: /etc/localtime @@ -52,27 +52,13 @@ metadata: spec: selector: app: demo - type: ClusterIP + type: NodePort # 修改为 NodePort 类型 sessionAffinity: None sessionAffinityConfig: clientIP: timeoutSeconds: 10800 ports: - name: demo - port: 8888 - targetPort: 8888 ---- -apiVersion: traefik.containo.us/v1alpha1 -kind: IngressRoute -metadata: - name: demo - namespace: NAME_SPACE -spec: - entryPoints: - - web - routes: - - match: Host(`DOMAIN_NAME`) - kind: Rule - services: - - name: demo - port: 8888 \ No newline at end of file + port: 8888 # Service 端口 + targetPort: 8888 # 容器端口 + nodePort: 30080 # NodePort 端口(可选,范围 30000-32767) \ No newline at end of file -- Gitee From c846976b1e47b2c42c2d1f73335b755f2327c7c0 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 13:51:40 +0000 Subject: [PATCH 03/17] update cicd/jenkins/Jenkinsfile-k8s.groovy. use own Jenkinsfile Signed-off-by: Error_Exception <3356804116@qq.com> --- cicd/jenkins/Jenkinsfile-k8s.groovy | 230 +++++++++++++--------------- 1 file changed, 109 insertions(+), 121 deletions(-) diff --git a/cicd/jenkins/Jenkinsfile-k8s.groovy b/cicd/jenkins/Jenkinsfile-k8s.groovy index 42a68a3..5c8be34 100644 --- a/cicd/jenkins/Jenkinsfile-k8s.groovy +++ b/cicd/jenkins/Jenkinsfile-k8s.groovy @@ -1,106 +1,104 @@ pipeline { agent { kubernetes { - // 定义要在 Kubernetes 中运行的 Pod 模板 + retries 2 yaml ''' apiVersion: v1 kind: Pod metadata: labels: app: jenkins-slave + namespace: cicd spec: containers: - name: jnlp - image: harbor.local.com/cicd/jenkins-slave:v1.0 + image: registry.cn-hangzhou.aliyuncs.com/wangcc_dev/wangcc_dev_test:jenkins-slave-1.0 resources: limits: memory: "512Mi" cpu: "500m" + requests: + memory: "256Mi" + cpu: "250m" securityContext: privileged: true volumeMounts: - name: buildkit mountPath: "/run/buildkit/" - - name: containerd - mountPath: "/run/containerd/containerd.sock" + - name: docker-socket + mountPath: "/var/run/docker.sock" - name: kube-config mountPath: "/root/.kube/" readOnly: true + - name: docker-config + mountPath: "/etc/docker/daemon.json" + readOnly: true - name: maven - image: harbor.local.com/cicd/maven:3.9.3 + image: registry.cn-hangzhou.aliyuncs.com/wangcc_dev/wangcc_dev_test:maven-3.9.3 resources: limits: memory: "512Mi" cpu: "500m" + requests: + memory: "256Mi" + cpu: "250m" command: - 'sleep' args: - '9999' - volumeMounts: - - name: maven-data - mountPath: "/root/.m2" - - name: buildkitd - image: harbor.local.com/cicd/buildkit:v0.13.2 - resources: - limits: - memory: "256Mi" - cpu: "500m" - securityContext: - privileged: true - volumeMounts: - - name: buildkit - mountPath: "/run/buildkit/" - - name: buildkit-data - mountPath: "/var/lib/buildkit/" - - name: containerd - mountPath: "/run/containerd/containerd.sock" volumes: - - name: maven-data - persistentVolumeClaim: - claimName: jenkins-maven - name: buildkit hostPath: path: /run/buildkit/ - - name: buildkit-data + - name: docker-socket hostPath: - path: /var/lib/buildkit/ - - name: containerd + path: /var/run/docker.sock + - name: docker-config hostPath: - path: /run/containerd/containerd.sock + path: /etc/docker/daemon.json - name: kube-config secret: secretName: kube-config - ''' - retries 2 +''' } } environment { - // 全局变量 - HARBOR_CRED = "harbor-cuiliang-password" - IMAGE_NAME = "" - IMAGE_APP = "demo" - branchName = "" + // 镜像仓库地址 + REGISTRY_URL = "registry.cn-hangzhou.aliyuncs.com" + // 镜像仓库项目名称 + REGISTRY_PROJECT = "wangcc_dev" + // 镜像仓库凭证,该值为 Jenkins 凭据的 ID + REGISTRY_CRED = "db5b3a28-da27-4c09-9167-e89246739731" + // 镜像名称 + IMAGE_NAME = "wangcc_dev_test" + // 镜像标签 + IMAGE_TAG = "" + // 完整镜像名称,包含仓库地址、项目名称、镜像名称、镜像标签 + IMAGE_FULL_NAME = "" + // 拉取代码的仓库地址 + GIT_URL = "https://gitee.com/error-exception/spring_boot_demo-v2.git" + // 拉取代码的凭证,该值为 Jenkins 凭据的 ID + GIT_CRED = "027b13d4-e6ec-4087-b1ae-7c1bd6cd1305" + // 代码分支名称 + GIT_BRANCH_NAME = "master" } stages { stage('拉取代码') { - environment { - // gitlab仓库信息 - GITLAB_CRED = "gitlab-cuiliang-password" - GITLAB_URL = "http://gitlab.cicd.svc/develop/sprint_boot_demo.git" - } steps { echo '开始拉取代码' - checkout scmGit(branches: [[name: '*/*']], extensions: [], userRemoteConfigs: [[credentialsId: "${GITLAB_CRED}", url: "${GITLAB_URL}"]]) - // 获取当前拉取的分支名称 - script { - def branch = env.GIT_BRANCH ?: 'master' - branchName = branch.split('/')[-1] - } + // 拉取项目代码,并切换到指定分支,使用指定凭证。完成代码拉取后,后续的操作都在该代码根目录下进行。 + git branch: "${GIT_BRANCH_NAME}", credentialsId: "${GIT_CRED}", url: "${GIT_URL}" + // // 获取当前拉取的分支名称 + // script { + // def branch = env.GIT_BRANCH ?: 'master' + // branchName = branch.split('/')[-1] + // } echo '拉取代码完成' } } stage('编译打包') { steps { + // 使用名为 maven 的 container 对项目进行编译打包后端项目 container('maven') { // 指定使用maven container进行打包 echo '开始编译打包' @@ -109,101 +107,91 @@ spec: } } } - stage('代码审查') { - environment { - // SonarQube信息 - SONARQUBE_SCANNER = "SonarQubeScanner" - SONARQUBE_SERVER = "SonarQubeServer" - } - steps { - echo '开始代码审查' - script { - def scannerHome = tool "${SONARQUBE_SCANNER}" - withSonarQubeEnv("${SONARQUBE_SERVER}") { - sh "${scannerHome}/bin/sonar-scanner" - } - } - echo '代码审查完成' - } - } stage('构建镜像') { - environment { - // harbor仓库信息 - HARBOR_URL = "harbor.local.com" - HARBOR_PROJECT = "spring_boot_demo" - // 镜像标签 - IMAGE_TAG = '' - // 镜像名称 - IMAGE_NAME = '' - } steps { echo '开始构建镜像' script { - if (branchName == 'master') { - IMAGE_TAG = VersionNumber versionPrefix: 'p', versionNumberString: '${BUILD_DATE_FORMATTED, "yyMMdd"}.${BUILDS_TODAY}' - } else if (branchName == 'test') { - IMAGE_TAG = VersionNumber versionPrefix: 't', versionNumberString: '${BUILD_DATE_FORMATTED, "yyMMdd"}.${BUILDS_TODAY}' + // 根据分支名称设置镜像标签,其中 app-p 为生产环境,app-t 为测试环境 + if (GIT_BRANCH_NAME == 'master') { + IMAGE_TAG = VersionNumber versionPrefix: 'app-p', versionNumberString: '${BUILD_DATE_FORMATTED, "yyMMdd"}.${BUILDS_TODAY}' + } else if (GIT_BRANCH_NAME == 'test') { + IMAGE_TAG = VersionNumber versionPrefix: 'app-t', versionNumberString: '${BUILD_DATE_FORMATTED, "yyMMdd"}.${BUILDS_TODAY}' } else { error("Unsupported branch: ${params.BRANCH}") } - IMAGE_NAME = "${HARBOR_URL}/${HARBOR_PROJECT}/${IMAGE_APP}:${IMAGE_TAG}" - sh "nerdctl build --insecure-registry -t ${IMAGE_NAME} . " + // 拼接完整镜像名称,包含仓库地址、项目名称、镜像名称、镜像标签 + IMAGE_FULL_NAME = "${REGISTRY_URL}/${REGISTRY_PROJECT}/${IMAGE_NAME}:${IMAGE_TAG}" + // 构建镜像 + sh "docker build -t ${IMAGE_FULL_NAME} . " } echo '构建镜像完成' echo '开始推送镜像' // 获取harbor账号密码 - withCredentials([usernamePassword(credentialsId: "${HARBOR_CRED}", passwordVariable: 'HARBOR_PASSWORD', usernameVariable: 'HARBOR_USERNAME')]) { - // 登录Harbor仓库 - sh """nerdctl login --insecure-registry ${HARBOR_URL} -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD} - nerdctl push --insecure-registry ${IMAGE_NAME}""" + withCredentials([usernamePassword(credentialsId: "${REGISTRY_CRED}", passwordVariable: 'REGISTRY_PASS', usernameVariable: 'REGISTRY_USER')]) { + // some block + sh """docker login -u ${REGISTRY_USER} -p ${REGISTRY_PASS} ${REGISTRY_URL} + docker push ${IMAGE_FULL_NAME}""" } echo '推送镜像完成' - echo '开始删除镜像' - script { - sh "nerdctl rmi -f ${IMAGE_NAME}" - } - echo '删除镜像完成' + // echo '开始删除镜像' + // script { + // sh "docker rmi -f ${IMAGE_NAME}" + // } + // echo '删除镜像完成' } } - stage('项目部署') { - environment { - // 资源清单名称 - YAML_NAME = "k8s.yaml" - } - steps { - echo '开始修改资源清单' - script { - if (branchName == 'master' ) { - NAME_SPACE = 'prod' - DOMAIN_NAME = 'demo.local.com' - } else if (branchName == 'test') { - NAME_SPACE = 'test' - DOMAIN_NAME = 'demo.test.com' - } else { - error("Unsupported branch: ${params.BRANCH}") - } - } - // 使用Content Replace插件进行k8s资源清单内容替换 - contentReplace(configs: [fileContentReplaceConfig(configs: [fileContentReplaceItemConfig(replace: "${IMAGE_NAME}", search: 'IMAGE_NAME'), - fileContentReplaceItemConfig(replace: "${NAME_SPACE}", search: 'NAME_SPACE'), - fileContentReplaceItemConfig(replace: "${DOMAIN_NAME}", search: 'DOMAIN_NAME')], - fileEncoding: 'UTF-8', - filePath: "${YAML_NAME}", - lineSeparator: 'Unix')]) - echo '修改资源清单完成' - sh "cat ${YAML_NAME}" - echo '开始部署资源清单' - sh "kubectl apply -f ${YAML_NAME}" - echo '部署资源清单完成' + stage('部署应用程序') { + environment { + // 部署用的 k8s yaml 文件,这里使用的是代码仓库下 cicd/k8s.yaml 文件 + // 该文件是一个部署应用服务的模板文件,其中需要替换的变量有: + // IMAGE_NAME:镜像名称 + // NAME_SPACE:命名空间 + YAML_FILE = "cicd/k8s.yaml" + } + steps { + echo "正在生成部署的 yaml 文件" + script { + // 根据分支名称设置命名空间 + if (GIT_BRANCH_NAME == 'master') { + NAMESPACE = "ns-app-prod" + } else if (GIT_BRANCH_NAME == 'test') { + NAMESPACE = "ns-app-test" + } else { + error("Unsupported branch: ${params.BRANCH}") + } } + // 替换模板中的变量为实际部署的值 + contentReplace( + configs: [ + fileContentReplaceConfig( + configs: [ + fileContentReplaceItemConfig(replace: "${IMAGE_FULL_NAME}", search: 'IMAGE_NAME'), + fileContentReplaceItemConfig(replace: "${NAMESPACE}", search: 'NAME_SPACE'), + fileContentReplaceItemConfig(replace: "${DOMAIN_NAME}", search: 'DOMAIN_NAME') + ], + fileEncoding: 'UTF-8', + filePath: "${YAML_FILE}", + lineSeparator: 'Unix' + ) + ] + ) + + sh "cat ${YAML_FILE}" + + echo "开始部署应用程序" + sh "kubectl apply -f ${YAML_FILE}" + echo "部署应用程序完成" + } } } post { always { echo '开始发送邮件通知' emailext(subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!', - body: '${FILE,path="email.html"}', - to: 'cuiliang0302@qq.com') + // 这里使用代码仓库下 cicd/jenkins/email.html 文件作为邮件内容模板,发送之前,Jenkins 会自动将该文件内容替换为实际的构建信息。 + body: '${FILE,path="cicd/jenkins/email.html"}', + // 收件人 + to: '3356804116@qq.com') echo '邮件通知发送完成' } } -- Gitee From 9a76828210527389a3a075e2c945f598e6a66ba2 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 13:54:18 +0000 Subject: [PATCH 04/17] rename readme.md to README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- readme.md => README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename readme.md => README.md (100%) diff --git a/readme.md b/README.md similarity index 100% rename from readme.md rename to README.md -- Gitee From a0a6e3aab3a0cce7812b95abbf779043e3b223a1 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 13:56:49 +0000 Subject: [PATCH 05/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 80eff02..2544c52 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 +Change + # 版本依赖 Openjdk:17.0.7 -- Gitee From 0ab9dfd5c65566d52d9a8543343dacc3970e7e09 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 14:03:41 +0000 Subject: [PATCH 06/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2544c52..20e3de4 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change +Change2 # 版本依赖 -- Gitee From ca776e2eacdb1d1d16b39a7a4e0ad0bf353b38a5 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 14:28:05 +0000 Subject: [PATCH 07/17] update cicd/jenkins/Jenkinsfile-k8s.groovy. bugfix Signed-off-by: Error_Exception <3356804116@qq.com> --- cicd/jenkins/Jenkinsfile-k8s.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cicd/jenkins/Jenkinsfile-k8s.groovy b/cicd/jenkins/Jenkinsfile-k8s.groovy index 5c8be34..8d5d1b7 100644 --- a/cicd/jenkins/Jenkinsfile-k8s.groovy +++ b/cicd/jenkins/Jenkinsfile-k8s.groovy @@ -166,8 +166,7 @@ spec: fileContentReplaceConfig( configs: [ fileContentReplaceItemConfig(replace: "${IMAGE_FULL_NAME}", search: 'IMAGE_NAME'), - fileContentReplaceItemConfig(replace: "${NAMESPACE}", search: 'NAME_SPACE'), - fileContentReplaceItemConfig(replace: "${DOMAIN_NAME}", search: 'DOMAIN_NAME') + fileContentReplaceItemConfig(replace: "${NAMESPACE}", search: 'NAME_SPACE') ], fileEncoding: 'UTF-8', filePath: "${YAML_FILE}", -- Gitee From fa99398e8f774735b4ce12d8a8c46babf4582d7c Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 14:40:50 +0000 Subject: [PATCH 08/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 20e3de4..da44fd8 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change2 +Change3 # 版本依赖 -- Gitee From 7dfbcb2c98f760bd211813db0240212f930e3931 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 14:49:34 +0000 Subject: [PATCH 09/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da44fd8..096f1f7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change3 +Change4 # 版本依赖 -- Gitee From acbcdb61219a5a46aa0655d8d068d17bd312d1e2 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Sun, 30 Nov 2025 14:51:41 +0000 Subject: [PATCH 10/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 096f1f7..2c698cc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change4 +Change5 # 版本依赖 -- Gitee From ea79ba5a1cb69224727a9a403228dc761fe3814a Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 10:42:25 +0000 Subject: [PATCH 11/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c698cc..04147c3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change5 +Change6 # 版本依赖 -- Gitee From 1650d77e6af40e1cd1f30e5d4258d4264b8fbd4d Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 10:53:18 +0000 Subject: [PATCH 12/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 04147c3..100d3ba 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change6 +Change7 # 版本依赖 -- Gitee From 672ab50e4de1119ebc9ec52eea8048aa715a3df3 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 10:53:18 +0000 Subject: [PATCH 13/17] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 04147c3..100d3ba 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change6 +Change7 # 版本依赖 -- Gitee From 92517c1b70ad8d02078b11701203828a6d220846 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 10:55:45 +0000 Subject: [PATCH 14/17] update README.md. Signed-off-by: Error_Exception <3356804116@qq.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 100d3ba..e857d38 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 最简单的springboot项目,用于测试java项目使用jenkins、gitlab ci、argo cd打包部署功能。 -Change7 +Change8 # 版本依赖 -- Gitee From 806bcdd53d2c19a35b68293f76d828116507b575 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 11:11:05 +0000 Subject: [PATCH 15/17] update cicd/jenkins/Jenkinsfile-k8s.groovy. Signed-off-by: Error_Exception <3356804116@qq.com> --- cicd/jenkins/Jenkinsfile-k8s.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cicd/jenkins/Jenkinsfile-k8s.groovy b/cicd/jenkins/Jenkinsfile-k8s.groovy index 8d5d1b7..d301a52 100644 --- a/cicd/jenkins/Jenkinsfile-k8s.groovy +++ b/cicd/jenkins/Jenkinsfile-k8s.groovy @@ -122,7 +122,7 @@ spec: // 拼接完整镜像名称,包含仓库地址、项目名称、镜像名称、镜像标签 IMAGE_FULL_NAME = "${REGISTRY_URL}/${REGISTRY_PROJECT}/${IMAGE_NAME}:${IMAGE_TAG}" // 构建镜像 - sh "docker build -t ${IMAGE_FULL_NAME} . " + sh "docker build -f cicd/Dockerfile -t ${IMAGE_FULL_NAME} . " } echo '构建镜像完成' echo '开始推送镜像' -- Gitee From ac52a458dd64d3f36bcc21679f5c90e039398dc5 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 19:58:31 +0800 Subject: [PATCH 16/17] update source code --- .../java/com/example/springbootdemo/HelloWorldController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/example/springbootdemo/HelloWorldController.java b/src/main/java/com/example/springbootdemo/HelloWorldController.java index 4640616..ff218e0 100644 --- a/src/main/java/com/example/springbootdemo/HelloWorldController.java +++ b/src/main/java/com/example/springbootdemo/HelloWorldController.java @@ -10,7 +10,7 @@ public class HelloWorldController { public String hello() { // 获取环境变量 ENV_NAME,如果不存在则使用默认值 "default" String envName = System.getenv().getOrDefault("ENV_NAME", "default"); - return String.format("

Hello SpringBoot

Version:v1 Env:%s

", envName); + return String.format("

Hello SpringBoot For Dev

Version:v1 Env:%s

", envName); } @RequestMapping("/health") @ResponseBody -- Gitee From 7eaee721deb2d54ffc66a373051c7edcf1542702 Mon Sep 17 00:00:00 2001 From: Error_Exception <3356804116@qq.com> Date: Mon, 1 Dec 2025 20:17:03 +0800 Subject: [PATCH 17/17] update Dockerfile --- cicd/Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cicd/Dockerfile b/cicd/Dockerfile index 46b80b9..88c1fde 100644 --- a/cicd/Dockerfile +++ b/cicd/Dockerfile @@ -2,9 +2,6 @@ FROM openjdk:17-jdk-alpine # 设置环境变量 ENV ENV_NAME=prod EXPOSE 8888 -RUN apk --no-cache add curl ARG JAR_FILE=target/SpringBootDemo-0.0.1-SNAPSHOT.jar -HEALTHCHECK --interval=5s --timeout=3s \ - CMD curl -fs http://127.0.0.1:8888/health || exit 1 ADD ${JAR_FILE} app.jar -CMD ["java","-jar","/app.jar"] \ No newline at end of file +CMD ["java","-jar","/app.jar"] -- Gitee