From 5ed4fbca929470ba9431a24f8d9b8f78bf8a0256 Mon Sep 17 00:00:00 2001 From: aipper Date: Sat, 1 Nov 2025 16:44:44 +0800 Subject: [PATCH] test --- Dockerfile.fast | 9 ++++++-- Dockerfile.stable | 12 ++++++++-- debug-container.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 4 deletions(-) create mode 100755 debug-container.sh diff --git a/Dockerfile.fast b/Dockerfile.fast index f60f525..9723615 100644 --- a/Dockerfile.fast +++ b/Dockerfile.fast @@ -71,8 +71,10 @@ RUN chown -R root:root /root/.m2 COPY src ./src # 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml || \ - (echo "Build completed with some warnings" && true) +RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml + +# 验证JAR文件是否生成 +RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1) # ===== 运行阶段 ===== # 使用更小的Alpine镜像 @@ -120,6 +122,9 @@ WORKDIR /app # 从构建阶段复制jar文件 COPY --from=builder /build/target/point-strategy-*.jar app.jar +# 验证JAR文件是否正确复制 +RUN ls -la app.jar && file app.jar + # 切换到非root用户 USER app diff --git a/Dockerfile.stable b/Dockerfile.stable index aa29a39..e2dc4d0 100644 --- a/Dockerfile.stable +++ b/Dockerfile.stable @@ -74,8 +74,13 @@ RUN chown -R root:root /root/.m2 COPY src ./src # 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml || \ - (echo "Build completed with some warnings" && true) +RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml + +# 验证JAR文件是否生成 +RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1) + +# 显示JAR文件信息 +RUN file /build/target/point-strategy-*.jar && ls -lh /build/target/point-strategy-*.jar # ===== 运行阶段 ===== # 使用OpenJDK 8作为基础镜像 @@ -142,6 +147,9 @@ WORKDIR /app # 从构建阶段复制jar文件 COPY --from=builder /build/target/point-strategy-*.jar app.jar +# 验证JAR文件是否正确复制 +RUN ls -la app.jar && file app.jar + # 复制配置文件(如果需要覆盖默认配置) # COPY application-prod.yml application-prod.yml diff --git a/debug-container.sh b/debug-container.sh new file mode 100755 index 0000000..b6231fd --- /dev/null +++ b/debug-container.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +echo "=== 容器调试脚本 ===" +echo + +CONTAINER_NAME="digital-archive-app" + +# 检查容器是否运行 +if ! docker ps | grep -q "$CONTAINER_NAME"; then + echo "❌ 容器 $CONTAINER_NAME 未运行" + echo "正在启动容器进行调试..." + + # 临时启动容器进行调试 + docker run --rm --name debug-container -it --entrypoint /bin/sh digital-archive:stable + exit 0 +fi + +echo "✓ 找到运行中的容器: $CONTAINER_NAME" + +echo +echo "🔍 检查容器内的文件结构:" + +# 检查工作目录 +echo "1. 工作目录内容:" +docker exec "$CONTAINER_NAME" ls -la /app || echo "❌ 无法访问 /app 目录" + +# 检查 JAR 文件 +echo +echo "2. JAR 文件检查:" +docker exec "$CONTAINER_NAME" ls -la app.jar || echo "❌ app.jar 不存在" + +# 检查 JAR 文件类型 +echo +echo "3. JAR 文件类型:" +docker exec "$CONTAINER_NAME" file app.jar || echo "❌ 无法检查文件类型" + +# 检查用户权限 +echo +echo "4. 用户权限:" +docker exec "$CONTAINER_NAME" whoami && docker exec "$CONTAINER_NAME" id + +# 检查 Java 环境 +echo +echo "5. Java 环境:" +docker exec "$CONTAINER_NAME" java -version || echo "❌ Java 不可用" + +echo +echo "🧪 测试直接运行 JAR:" +docker exec "$CONTAINER_NAME" sh -c "cd /app && java -jar app.jar --help" || echo "❌ JAR 运行失败" + +echo +echo "=== 调试完成 ===" +echo +echo "💡 如果需要进入容器调试:" +echo " docker exec -it $CONTAINER_NAME /bin/sh" \ No newline at end of file