diff --git a/Dockerfile.fast b/Dockerfile.fast index 73b648c..810198d 100644 --- a/Dockerfile.fast +++ b/Dockerfile.fast @@ -137,6 +137,9 @@ RUN ls -la app.jar && echo "JAR 文件大小: $(du -h app.jar | cut -f1)" # 切换到非root用户 USER app +# 确保日志目录存在且有正确权限 +RUN mkdir -p /app/logs + # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:9081/point-strategy/actuator/health || exit 1 diff --git a/Dockerfile.stable b/Dockerfile.stable index ea856f1..34cd977 100644 --- a/Dockerfile.stable +++ b/Dockerfile.stable @@ -165,6 +165,9 @@ RUN ls -la app.jar && echo "JAR 文件大小: $(du -h app.jar | cut -f1)" # 切换到非root用户 USER app +# 确保日志目录存在且有正确权限 +RUN mkdir -p /app/logs + # 健康检查 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:9081/point-strategy/actuator/health || exit 1 diff --git a/archive-manager.sh b/archive-manager.sh index d08fdc9..4170844 100755 --- a/archive-manager.sh +++ b/archive-manager.sh @@ -237,6 +237,10 @@ deploy_app() { # 创建部署目录 mkdir -p "$deploy_dir"/{data/{upload,temp,unzip,images,reports,elasticsearch},logs,nginx} + # 设置日志目录权限(确保容器内 app 用户可以写入) + chmod 755 "$deploy_dir/logs" + chown -R 1001:1001 "$deploy_dir/logs" 2>/dev/null || true + # 动态生成 docker-compose.yml 文件 cat > "$deploy_dir/docker-compose.yml" << EOF version: '3.8' diff --git a/fix-log-permissions.sh b/fix-log-permissions.sh new file mode 100755 index 0000000..d6d8f95 --- /dev/null +++ b/fix-log-permissions.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +echo "=== 日志权限修复脚本 ===" +echo + +DEPLOY_DIR="/root/server/archive" +LOGS_DIR="$DEPLOY_DIR/logs" + +if [ ! -d "$LOGS_DIR" ]; then + echo "❌ 日志目录不存在: $LOGS_DIR" + echo "正在创建日志目录..." + mkdir -p "$LOGS_DIR" +fi + +echo "🔧 修复日志目录权限..." + +# 设置目录权限 +chmod 755 "$LOGS_DIR" + +# 设置所有者(app 用户的 UID/GID 是 1001) +chown -R 1001:1001 "$LOGS_DIR" 2>/dev/null || echo "⚠️ 无法设置所有者,但权限已设置" + +# 显示权限信息 +echo "✓ 权限修复完成" +echo +echo "📋 目录权限信息:" +ls -la "$LOGS_DIR" + +echo +echo "📋 目录所有者信息:" +ls -la "$DEPLOY_DIR" | grep logs + +echo +echo "🚀 现在可以重启服务:" +echo " ./archive-manager.sh restart" +echo +echo "或者手动重启容器:" +echo " docker stop digital-archive-app" +echo " docker start digital-archive-app" \ No newline at end of file