55 lines
1.4 KiB
Bash
Executable File
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" |