Files
server/debug-container.sh
2025-11-01 16:44:44 +08:00

55 lines
1.4 KiB
Bash
Executable File

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