#!/bin/bash echo "=== 字体配置检查脚本 ===" echo CONTAINER_NAME="digital-archive-app" # 检查容器是否运行 if ! docker ps | grep -q "$CONTAINER_NAME"; then echo "❌ 容器 $CONTAINER_NAME 未运行" echo "请先启动容器: ./archive-manager.sh start" exit 1 fi echo "✓ 找到运行中的容器: $CONTAINER_NAME" echo echo "🔍 检查字体配置:" # 检查字体目录 echo "1. 字体目录:" docker exec "$CONTAINER_NAME" ls -la /usr/share/fonts/ 2>/dev/null || echo " 字体目录不存在" # 检查字体配置 echo echo "2. 字体配置:" docker exec "$CONTAINER_NAME" ls -la /etc/fonts/ 2>/dev/null || echo " 字体配置目录不存在" # 检查可用字体 echo echo "3. 可用字体:" docker exec "$CONTAINER_NAME" fc-list | head -10 2>/dev/null || echo " 无法获取字体列表" # 检查 Java 字体环境 echo echo "4. Java 字体环境:" docker exec "$CONTAINER_NAME" java -Djava.awt.headless=true -cp . -c "import java.awt.GraphicsEnvironment; import java.awt.Font; System.out.println(\"Available fonts: \" + GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames().length); System.out.println(\"Headless: \" + GraphicsEnvironment.isHeadless());" 2>/dev/null || echo " 无法检查 Java 字体环境" echo echo "🧪 测试字体渲染:" docker exec "$CONTAINER_NAME" sh -c "echo '测试字体' | fc-match -v 2>/dev/null || echo '字体匹配失败'" echo echo "💡 如果字体问题持续,可以尝试:" echo "1. 重新构建镜像(包含字体包)" echo "2. 添加中文字体支持" echo "3. 设置 JAVA_OPTS 包含 -Djava.awt.headless=true" echo echo "=== 检查完成 ==="