#!/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"