Spaces:
Running
Running
File size: 2,090 Bytes
45b99f3 e4cf850 919170c bbf8af3 fc0cce5 459e040 fc0cce5 459e040 919170c fc0cce5 0f0189d 0c799ac 459e040 fc0cce5 0c799ac fc0cce5 459e040 fc0cce5 459e040 0f0189d 459e040 e7e4e66 b39ad01 0c799ac ae0ce11 459e040 fc0cce5 459e040 fc0cce5 459e040 fc0cce5 459e040 b39ad01 0c799ac 459e040 ae0ce11 fc0cce5 ae0ce11 fc0cce5 0f0189d 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 | FROM ymlisoft/kkfileview
USER root
# 安装 Nginx, xvfb, curl
RUN apt-get update && apt-get install -y \
nginx \
apache2-utils \
xvfb \
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 (监听 7860 -> 转发 8012)
RUN rm -f /etc/nginx/sites-enabled/default && \
printf 'server {\n\
listen 7860;\n\
server_name _;\n\
auth_basic "Restricted Access";\n\
auth_basic_user_file /etc/nginx/.htpasswd;\n\
location / {\n\
proxy_pass http://127.0.0.1:8012;\n\
proxy_set_header Host $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 $scheme;\n\
proxy_buffering off;\n\
}\n\
}\n' > /etc/nginx/sites-available/kkfileview && \
ln -s /etc/nginx/sites-available/kkfileview /etc/nginx/sites-enabled/
# 启动脚本
RUN printf '#!/bin/bash\n\
set -e\n\
\n\
echo "=== Starting Services ==="\n\
\n\
# 1. 配置密码\n\
echo "Configuring password..."\n\
htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
\n\
# 2. 启动 Xvfb\n\
echo "Starting Xvfb..."\n\
Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
export DISPLAY=:99\n\
sleep 2\n\
\n\
# 3. 启动 kkFileView\n\
echo "Starting kkFileView backend on 8012..."\n\
# 将日志重定向到文件,避免干扰控制台,同时后台运行\n\
/opt/kkFileView/bin/kkFileView --server.port=8012 > /var/log/kkfileview.log 2>&1 &\n\
\n\
# 4. 等待 kkFileView 启动\n\
echo "Waiting for backend to be ready..."\n\
for i in {1..60}; do\n\
if curl -s http://127.0.0.1:8012 > /dev/null; then\n\
echo "✓ Backend is ready!"\n\
break\n\
fi\n\
echo "Waiting... ($i/60)"\n\
sleep 2\n\
done\n\
\n\
# 5. 启动 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"]
|