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"]