From fbb6d9f48bee0ac9b712c238be9a4277afe582ab Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 21:56:08 -0500 Subject: [PATCH 01/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 83 ++++++++++++++++++++++++++++++++++++++++++++++-------- pom.xml | 76 ++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 138 insertions(+), 21 deletions(-) diff --git a/.drone.yml b/.drone.yml index 950f769..b371f43 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,28 +2,47 @@ kind: pipeline type: docker name: multi-lang-ci +# 推荐工作区配置 - 修改为当前项目的正确路径 +workspace: + base: /drone + path: . + +# 定义缓存卷,用于存储 Maven 依赖 +volumes: + - name: cache + temp: {} + - name: npm-cache + path: /localcache/npmcache + # 添加 Maven 缓存卷(虽然通过 runner 挂载,但显式声明更清晰) + - name: maven-cache + path: /localcache/maven/repository + +# 触发器配置:针对 master 分支的 PR trigger: event: - pull_request + - push + - tag branch: - - main + - master -# 克隆策略:只拉最新 commit,加速 +# 默认克隆步骤 (使用您本地已有的 drone/git:latest) clone: depth: 0 image: drone/git:latest - pull: false + pull: false # 禁用镜像拉取 steps: # 自动检测是否存在 Java (pom.xml) - name: java-build - image: maven:3.9-eclipse-temurin + image: registry.cn-beijing.aliyuncs.com/yinzy/maven:3.9-eclipse-temurin-8 pull: false + volumes: + - name: maven-cache + path: /localcache/maven/repository environment: - MAVEN_OPTS: -Dmaven.repo.local=.m2/repository + MAVEN_OPTS: -Dmaven.repo.local=/localcache/maven/repository commands: - # 先创建 .m2 目录 - - mkdir -p ~/.m2 # 动态生成 settings.xml(仅用于 CI) - | cat > ~/.m2/settings.xml << 'EOF' @@ -41,10 +60,51 @@ steps: EOF - - mvn clean verify - - if [ -f pom.xml ]; then mvn clean compile; fi + - mvn -s ~/.m2/settings.xml -DskipTests=true clean package + # 验证 JAR 文件是否生成 + - ls -lah target/*.jar || (echo "JAR file not found!" && exit 1) when: - event: [ push, pull_request ] + path: + include: + - pom.xml + event: [ push, pull_request, tag ] + + - name: docker_build + image: docker:latest + pull: false + volumes: + - name: docker_sock + path: /var/run/docker.sock + commands: + # 验证 JAR 文件存在 + - | + if [ ! -f target/drone-test-1.0.jar ]; then + echo "❌ JAR file not found! Make sure java-build step completed successfully." + ls -la target/ || echo "target directory does not exist" + exit 1 + fi + # 显示构建信息 + - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" + - echo "📁 JAR file info:" + - ls -lh target/drone-test-1.0.jar + # 构建 Docker 镜像 + - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . + # 如果存在 DRONE_TAG,同时打 latest 标签 + - | + if [ -n "${DRONE_TAG}" ]; then + docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest + echo "✅ Tagged as drone-test:latest" + fi + - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" + # 显示镜像信息 + - docker images drone-test + depends_on: + - java-build + when: + path: + include: + - pom.xml + event: [ push, pull_request, tag ] # 自动检测是否存在 Python (requirements.txt) - name: python-test @@ -57,7 +117,8 @@ steps: - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - if [ -f test_example.py ]; then python -m pytest test_example.py -v; fi when: - event: [ push, pull_request ] + branch: + exclude: [ "*" ] # 最终报告(无论成功失败都运行) - name: summary diff --git a/pom.xml b/pom.xml index 3668646..f2ec93c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,16 +7,72 @@ com.example drone-test 1.0 + jar + - 17 - 17 + 8 + 8 + UTF-8 - - - org.junit.jupiter - junit-jupiter - 5.12.2 - test - - + + + + org.junit.jupiter + junit-jupiter + 5.12.2 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 8 + 8 + UTF-8 + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + com.example.App + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + com.example.App + + + + + + + + \ No newline at end of file From e54b9750aeeb25f39e04e942fd54e6d14de2dd7e Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 21:56:24 -0500 Subject: [PATCH 02/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4810781 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# 使用最小的 Java 8 JRE 镜像 +FROM openjdk:8-jre-alpine + +# 设置工作目录 +WORKDIR /app + +# 复制生成的 JAR 文件到容器中(使用通配符匹配) +COPY target/*.jar app.jar + +# 运行应用 +ENTRYPOINT ["java", "-jar", "app.jar"] From b328ad6d07f74961c093a03380a2021d3848b73d Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:03:00 -0500 Subject: [PATCH 03/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 72 +++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.drone.yml b/.drone.yml index b371f43..267cab1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -69,42 +69,42 @@ steps: - pom.xml event: [ push, pull_request, tag ] - - name: docker_build - image: docker:latest - pull: false - volumes: - - name: docker_sock - path: /var/run/docker.sock - commands: - # 验证 JAR 文件存在 - - | - if [ ! -f target/drone-test-1.0.jar ]; then - echo "❌ JAR file not found! Make sure java-build step completed successfully." - ls -la target/ || echo "target directory does not exist" - exit 1 - fi - # 显示构建信息 - - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" - - echo "📁 JAR file info:" - - ls -lh target/drone-test-1.0.jar - # 构建 Docker 镜像 - - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . - # 如果存在 DRONE_TAG,同时打 latest 标签 - - | - if [ -n "${DRONE_TAG}" ]; then - docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest - echo "✅ Tagged as drone-test:latest" - fi - - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" - # 显示镜像信息 - - docker images drone-test - depends_on: - - java-build - when: - path: - include: - - pom.xml - event: [ push, pull_request, tag ] + # - name: docker_build + # image: docker:latest + # pull: false + # volumes: + # - name: docker_sock + # path: /var/run/docker.sock + # commands: + # # 验证 JAR 文件存在 + # - | + # if [ ! -f target/drone-test-1.0.jar ]; then + # echo "❌ JAR file not found! Make sure java-build step completed successfully." + # ls -la target/ || echo "target directory does not exist" + # exit 1 + # fi + # # 显示构建信息 + # - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" + # - echo "📁 JAR file info:" + # - ls -lh target/drone-test-1.0.jar + # # 构建 Docker 镜像 + # - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . + # # 如果存在 DRONE_TAG,同时打 latest 标签 + # - | + # if [ -n "${DRONE_TAG}" ]; then + # docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest + # echo "✅ Tagged as drone-test:latest" + # fi + # - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" + # # 显示镜像信息 + # - docker images drone-test + # depends_on: + # - java-build + # when: + # path: + # include: + # - pom.xml + # event: [ push, pull_request, tag ] # 自动检测是否存在 Python (requirements.txt) - name: python-test From 006c3c6643e6b4b94e96785579f4c713759cebc8 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 21:56:08 -0500 Subject: [PATCH 04/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 94 +++++++++++++++++++++++++++++++++++++++++++----------- pom.xml | 76 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 142 insertions(+), 28 deletions(-) diff --git a/.drone.yml b/.drone.yml index 897a9a8..b371f43 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,30 +2,50 @@ kind: pipeline type: docker name: multi-lang-ci +# 推荐工作区配置 - 修改为当前项目的正确路径 +workspace: + base: /drone + path: . + +# 定义缓存卷,用于存储 Maven 依赖 +volumes: + - name: cache + temp: {} + - name: npm-cache + path: /localcache/npmcache + # 添加 Maven 缓存卷(虽然通过 runner 挂载,但显式声明更清晰) + - name: maven-cache + path: /localcache/maven/repository + +# 触发器配置:针对 master 分支的 PR trigger: event: - pull_request + - push + - tag branch: - - main # <<< 确保分支名称与您的主分支一致 + - master +# 默认克隆步骤 (使用您本地已有的 drone/git:latest) clone: depth: 0 image: drone/git:latest - pull: false + pull: false # 禁用镜像拉取 steps: # 自动检测是否存在 Java (pom.xml) - name: java-build - image: maven:3.9-eclipse-temurin + image: registry.cn-beijing.aliyuncs.com/yinzy/maven:3.9-eclipse-temurin-8 pull: false + volumes: + - name: maven-cache + path: /localcache/maven/repository environment: - MAVEN_OPTS: -Dmaven.repo.local=.m2/repository + MAVEN_OPTS: -Dmaven.repo.local=/localcache/maven/repository commands: - # 在当前工作目录而非 ~ 下创建 .m2 目录,避免权限问题 - - mkdir -p .m2/repository - # 动态生成 settings.xml + # 动态生成 settings.xml(仅用于 CI) - | - cat > settings.xml << 'EOF' + cat > ~/.m2/settings.xml << 'EOF' EOF - # 使用自定义 settings.xml - - mvn -s settings.xml clean verify + - mvn -s ~/.m2/settings.xml -DskipTests=true clean package + # 验证 JAR 文件是否生成 + - ls -lah target/*.jar || (echo "JAR file not found!" && exit 1) when: path: include: - - pom.xml # 仅当存在 pom.xml 文件时运行 + - pom.xml + event: [ push, pull_request, tag ] + + - name: docker_build + image: docker:latest + pull: false + volumes: + - name: docker_sock + path: /var/run/docker.sock + commands: + # 验证 JAR 文件存在 + - | + if [ ! -f target/drone-test-1.0.jar ]; then + echo "❌ JAR file not found! Make sure java-build step completed successfully." + ls -la target/ || echo "target directory does not exist" + exit 1 + fi + # 显示构建信息 + - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" + - echo "📁 JAR file info:" + - ls -lh target/drone-test-1.0.jar + # 构建 Docker 镜像 + - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . + # 如果存在 DRONE_TAG,同时打 latest 标签 + - | + if [ -n "${DRONE_TAG}" ]; then + docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest + echo "✅ Tagged as drone-test:latest" + fi + - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" + # 显示镜像信息 + - docker images drone-test + depends_on: + - java-build + when: + path: + include: + - pom.xml + event: [ push, pull_request, tag ] # 自动检测是否存在 Python (requirements.txt) - name: python-test image: python:3.12.0-slim pull: false commands: - # 临时设置 pip 源 + # 临时设置 pip 源(仅本次会话) - pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ - pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn - - pip install -r requirements.txt - - python -m pytest test_example.py -v + - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - if [ -f test_example.py ]; then python -m pytest test_example.py -v; fi when: - path: - include: - - requirements.txt # 仅当存在 requirements.txt 文件时运行 - + branch: + exclude: [ "*" ] + # 最终报告(无论成功失败都运行) - name: summary image: alpine diff --git a/pom.xml b/pom.xml index 3668646..f2ec93c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,16 +7,72 @@ com.example drone-test 1.0 + jar + - 17 - 17 + 8 + 8 + UTF-8 - - - org.junit.jupiter - junit-jupiter - 5.12.2 - test - - + + + + org.junit.jupiter + junit-jupiter + 5.12.2 + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 8 + 8 + UTF-8 + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + com.example.App + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + com.example.App + + + + + + + + \ No newline at end of file From 23f1ed19b2b4ba668f3da91dda41f941bf474250 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 21:56:24 -0500 Subject: [PATCH 05/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4810781 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +# 使用最小的 Java 8 JRE 镜像 +FROM openjdk:8-jre-alpine + +# 设置工作目录 +WORKDIR /app + +# 复制生成的 JAR 文件到容器中(使用通配符匹配) +COPY target/*.jar app.jar + +# 运行应用 +ENTRYPOINT ["java", "-jar", "app.jar"] From 700f59cfaf8ae952b725d3866f8f818b612924c9 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:03:00 -0500 Subject: [PATCH 06/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 72 +++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/.drone.yml b/.drone.yml index b371f43..267cab1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -69,42 +69,42 @@ steps: - pom.xml event: [ push, pull_request, tag ] - - name: docker_build - image: docker:latest - pull: false - volumes: - - name: docker_sock - path: /var/run/docker.sock - commands: - # 验证 JAR 文件存在 - - | - if [ ! -f target/drone-test-1.0.jar ]; then - echo "❌ JAR file not found! Make sure java-build step completed successfully." - ls -la target/ || echo "target directory does not exist" - exit 1 - fi - # 显示构建信息 - - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" - - echo "📁 JAR file info:" - - ls -lh target/drone-test-1.0.jar - # 构建 Docker 镜像 - - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . - # 如果存在 DRONE_TAG,同时打 latest 标签 - - | - if [ -n "${DRONE_TAG}" ]; then - docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest - echo "✅ Tagged as drone-test:latest" - fi - - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" - # 显示镜像信息 - - docker images drone-test - depends_on: - - java-build - when: - path: - include: - - pom.xml - event: [ push, pull_request, tag ] + # - name: docker_build + # image: docker:latest + # pull: false + # volumes: + # - name: docker_sock + # path: /var/run/docker.sock + # commands: + # # 验证 JAR 文件存在 + # - | + # if [ ! -f target/drone-test-1.0.jar ]; then + # echo "❌ JAR file not found! Make sure java-build step completed successfully." + # ls -la target/ || echo "target directory does not exist" + # exit 1 + # fi + # # 显示构建信息 + # - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" + # - echo "📁 JAR file info:" + # - ls -lh target/drone-test-1.0.jar + # # 构建 Docker 镜像 + # - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . + # # 如果存在 DRONE_TAG,同时打 latest 标签 + # - | + # if [ -n "${DRONE_TAG}" ]; then + # docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest + # echo "✅ Tagged as drone-test:latest" + # fi + # - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" + # # 显示镜像信息 + # - docker images drone-test + # depends_on: + # - java-build + # when: + # path: + # include: + # - pom.xml + # event: [ push, pull_request, tag ] # 自动检测是否存在 Python (requirements.txt) - name: python-test From fdf48941ee47e33f7d9a20e151b600554aa6a329 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:10:57 -0500 Subject: [PATCH 07/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 267cab1..9daec52 100644 --- a/.drone.yml +++ b/.drone.yml @@ -21,8 +21,6 @@ volumes: trigger: event: - pull_request - - push - - tag branch: - master From 63c98c5eb1c0844c7eb3db5c7da7e96ffb75b9b3 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:13:17 -0500 Subject: [PATCH 08/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 9daec52..feacfc3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -22,7 +22,7 @@ trigger: event: - pull_request branch: - - master + - main # 默认克隆步骤 (使用您本地已有的 drone/git:latest) clone: From ad7f4e967295d795088bd6e34ce5db11f2221483 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:15:10 -0500 Subject: [PATCH 09/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index feacfc3..2980d88 100644 --- a/.drone.yml +++ b/.drone.yml @@ -41,6 +41,7 @@ steps: environment: MAVEN_OPTS: -Dmaven.repo.local=/localcache/maven/repository commands: + - mkdir -p ~/.m2 # 动态生成 settings.xml(仅用于 CI) - | cat > ~/.m2/settings.xml << 'EOF' From 067aad30df7d4d8f95df9156d2cf561d6eb17089 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:18:43 -0500 Subject: [PATCH 10/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 64 ++++++++++++++++++++++++------------------------------ 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2980d88..86213dc 100644 --- a/.drone.yml +++ b/.drone.yml @@ -68,42 +68,34 @@ steps: - pom.xml event: [ push, pull_request, tag ] - # - name: docker_build - # image: docker:latest - # pull: false - # volumes: - # - name: docker_sock - # path: /var/run/docker.sock - # commands: - # # 验证 JAR 文件存在 - # - | - # if [ ! -f target/drone-test-1.0.jar ]; then - # echo "❌ JAR file not found! Make sure java-build step completed successfully." - # ls -la target/ || echo "target directory does not exist" - # exit 1 - # fi - # # 显示构建信息 - # - echo "📦 Building Docker image with tag: drone-test:${DRONE_REPO_NAME}" - # - echo "📁 JAR file info:" - # - ls -lh target/drone-test-1.0.jar - # # 构建 Docker 镜像 - # - docker build -t drone-test:${DRONE_REPO_NAME} -f Dockerfile . - # # 如果存在 DRONE_TAG,同时打 latest 标签 - # - | - # if [ -n "${DRONE_TAG}" ]; then - # docker tag drone-test:${DRONE_REPO_NAME} drone-test:latest - # echo "✅ Tagged as drone-test:latest" - # fi - # - echo "✅ Built Docker image: drone-test:${DRONE_REPO_NAME}" - # # 显示镜像信息 - # - docker images drone-test - # depends_on: - # - java-build - # when: - # path: - # include: - # - pom.xml - # event: [ push, pull_request, tag ] + - name: docker_build + image: docker:latest + pull: false + volumes: + - name: docker_sock + path: /var/run/docker.sock + commands: + # 验证 JAR 文件存在 + - | + if [ ! -f target/drone-test-1.0.jar ]; then + echo "❌ JAR file not found! Make sure java-build step completed successfully." + ls -la target/ || echo "target directory does not exist" + exit 1 + fi + echo "📦 Building Docker image: ${DRONE_REPO_NAME}:latest" + echo "📁 JAR file info:" + ls -lh target/drone-test-1.0.jar + docker build -t ${DRONE_REPO_NAME}:latest -f Dockerfile . + docker tag ${DRONE_REPO_NAME}:latest ${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA:0:8} + echo "✅ Built Docker image: ${DRONE_REPO_NAME}:latest" + docker images ${DRONE_REPO_NAME} + depends_on: + - java-build + when: + path: + include: + - pom.xml + event: [ push, pull_request, tag ] # 自动检测是否存在 Python (requirements.txt) - name: python-test From 99bf38c9ff254514a0fc94280b480ff3fadd7ba3 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:18:55 -0500 Subject: [PATCH 11/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?1]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 86213dc..4c4ef5a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -69,7 +69,7 @@ steps: event: [ push, pull_request, tag ] - name: docker_build - image: docker:latest + image: docker pull: false volumes: - name: docker_sock From a5c24fc31a6800b77cc5c42eee84238cb95baba6 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:23:03 -0500 Subject: [PATCH 12/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?,=E7=94=9F=E6=88=90jar=E5=B9=B6=E6=9E=84=E5=BB=BA=E9=95=9C?= =?UTF-8?q?=E5=83=8F]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.drone.yml b/.drone.yml index 4c4ef5a..46bdd8c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -62,6 +62,17 @@ steps: - mvn -s ~/.m2/settings.xml -DskipTests=true clean package # 验证 JAR 文件是否生成 - ls -lah target/*.jar || (echo "JAR file not found!" && exit 1) + # 备份 JAR 文件到 /localcache/${DRONE_REPO_NAME} + - | + mkdir -p /localcache/${DRONE_REPO_NAME} + JAR_FILE=$(ls target/*.jar 2>/dev/null | head -1) + if [ -n "$JAR_FILE" ]; then + cp "$JAR_FILE" /localcache/${DRONE_REPO_NAME}/ + echo "✅ JAR file backed up to /localcache/${DRONE_REPO_NAME}/$(basename $JAR_FILE)" + ls -lh /localcache/${DRONE_REPO_NAME}/ + else + echo "⚠️ No JAR file found to backup" + fi when: path: include: From 768ea01ea1237bd8eeda75d546109409348aed53 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:33:44 -0500 Subject: [PATCH 13/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?,=E7=94=9F=E6=88=90jar=E5=B9=B6=E6=9E=84=E5=BB=BA=E9=95=9C?= =?UTF-8?q?=E5=83=8F]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 46bdd8c..57a5f0b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -16,6 +16,9 @@ volumes: # 添加 Maven 缓存卷(虽然通过 runner 挂载,但显式声明更清晰) - name: maven-cache path: /localcache/maven/repository + # 定义 Docker socket 卷 + - name: docker_sock + path: /var/run/docker.sock # 触发器配置:针对 master 分支的 PR trigger: @@ -80,12 +83,14 @@ steps: event: [ push, pull_request, tag ] - name: docker_build - image: docker + image: docker:latest pull: false volumes: - name: docker_sock path: /var/run/docker.sock commands: + # 验证 Docker daemon 是否可用 + - docker info || (echo "❌ Docker daemon not available" && exit 1) # 验证 JAR 文件存在 - | if [ ! -f target/drone-test-1.0.jar ]; then From d00fd20c3f7a83a0b3de38e50849d9c9bfda82b0 Mon Sep 17 00:00:00 2001 From: kale Date: Sun, 7 Dec 2025 22:34:06 -0500 Subject: [PATCH 14/14] =?UTF-8?q?[fix]:[20251208][=E6=9E=84=E5=BB=BAdocker?= =?UTF-8?q?,=E7=94=9F=E6=88=90jar=E5=B9=B6=E6=9E=84=E5=BB=BA=E9=95=9C?= =?UTF-8?q?=E5=83=8F]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 57a5f0b..4bbb857 100644 --- a/.drone.yml +++ b/.drone.yml @@ -70,7 +70,7 @@ steps: mkdir -p /localcache/${DRONE_REPO_NAME} JAR_FILE=$(ls target/*.jar 2>/dev/null | head -1) if [ -n "$JAR_FILE" ]; then - cp "$JAR_FILE" /localcache/${DRONE_REPO_NAME}/ + cp "$JAR_FILE" /localcache/${DRONE_REPO_NAME}/ -f echo "✅ JAR file backed up to /localcache/${DRONE_REPO_NAME}/$(basename $JAR_FILE)" ls -lh /localcache/${DRONE_REPO_NAME}/ else