Spaces:
Running
Running
File size: 2,703 Bytes
efe92b5 919170c bbf8af3 50ec61c 459e040 ec4776c fc0cce5 459e040 919170c 0f0189d 0c799ac 459e040 50ec61c 0c799ac 50ec61c b9de94c 459e040 763ac4b 459e040 763ac4b b9de94c fc0cce5 459e040 b9de94c ec4776c 763ac4b 459e040 0f0189d b9de94c 459e040 b9de94c 459e040 b9de94c e7e4e66 50ec61c 0c799ac ae0ce11 459e040 ec4776c 459e040 50ec61c b9de94c 50ec61c 459e040 50ec61c b39ad01 0c799ac 459e040 ae0ce11 50ec61c ec4776c 50ec61c b9de94c 50ec61c b9de94c 50ec61c ae0ce11 b9de94c fc0cce5 ec4776c fc0cce5 0f0189d b9de94c fc0cce5 459e040 19c209b e4cf850 fc0cce5 1930ef6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
FROM ymlisoft/kkfileview
USER root
# 安装工具
RUN apt-get update && apt-get install -y \
nginx \
apache2-utils \
xvfb \
net-tools \
curl \
&& rm -rf /var/lib/apt/lists/*
ENV SERVER_PORT=8012
ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
ENV AUTH_USERNAME=admin
ENV AUTH_PASSWORD=yourpassword
# Nginx 配置
RUN rm -rf /etc/nginx/sites-enabled/* && \
rm -rf /etc/nginx/conf.d/* && \
printf 'server {\n\
listen 7860 default_server;\n\
server_name _;\n\
\n\
# 密码保护\n\
auth_basic "Restricted Access";\n\
auth_basic_user_file /etc/nginx/.htpasswd;\n\
\n\
client_max_body_size 500M;\n\
\n\
location / {\n\
proxy_pass http://127.0.0.1:8012;\n\
proxy_set_header Host $http_host;\n\
proxy_set_header X-Real-IP $remote_addr;\n\
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;\n\
proxy_buffering off;\n\
}\n\
}\n' > /etc/nginx/conf.d/kkfileview.conf
# 启动脚本
RUN printf '#!/bin/bash\n\
set -e\n\
\n\
echo "=== Starting Secure kkFileView ==="\n\
\n\
# 1. 找启动脚本路径\n\
STARTUP_SCRIPT=$(find /opt -name "startup.sh" -o -name "kkFileView" | grep "bin/" | head -n 1)\n\
KK_ROOT_DIR=$(dirname $(dirname "$STARTUP_SCRIPT"))\n\
echo "Found root dir: $KK_ROOT_DIR"\n\
\n\
# 2. 配置密码\n\
htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
\n\
# 3. 启动 Xvfb\n\
Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
export DISPLAY=:99\n\
sleep 2\n\
\n\
# 4. 启动 kkFileView\n\
echo "Starting kkFileView on port 8012..."\n\
if [[ "$STARTUP_SCRIPT" == *".sh" ]]; then\n\
bash "$STARTUP_SCRIPT" &\n\
else\n\
"$STARTUP_SCRIPT" --server.port=8012 &\n\
fi\n\
\n\
# 5. 追踪真实日志文件\n\
# kkFileView 启动后会创建 log/kkFileView.log\n\
echo "Waiting for log file..."\n\
LOG_FILE="$KK_ROOT_DIR/log/kkFileView.log"\n\
\n\
# 循环等待日志文件生成\n\
for i in {1..30}; do\n\
if [ -f "$LOG_FILE" ]; then\n\
echo "✓ Found log file: $LOG_FILE"\n\
# 启动后台 tail 进程显示日志\n\
tail -f "$LOG_FILE" &\n\
break\n\
fi\n\
sleep 1\n\
done\n\
\n\
# 6. 等待端口就绪\n\
echo "Waiting for backend port 8012..."\n\
for i in {1..60}; do\n\
if netstat -tuln | grep ":8012 " > /dev/null; then\n\
echo "✓ Port 8012 is ready!"\n\
break\n\
fi\n\
echo "Waiting... ($i/60)"\n\
sleep 2\n\
done\n\
\n\
# 7. 启动 Nginx\n\
echo "Starting Nginx on 7860..."\n\
nginx -g "daemon off;"\n' > /start.sh && \
chmod +x /start.sh
EXPOSE 7860
ENTRYPOINT []
CMD ["/start.sh"]
|