dragg2 commited on
Commit
fc0cce5
·
verified ·
1 Parent(s): 45b99f3

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +27 -29
Dockerfile CHANGED
@@ -2,28 +2,27 @@ FROM ymlisoft/kkfileview
2
 
3
  USER root
4
 
5
- # 安装 Nginxxvfb 和密码工具
6
  RUN apt-get update && apt-get install -y \
7
  nginx \
8
  apache2-utils \
9
  xvfb \
 
10
  && rm -rf /var/lib/apt/lists/*
11
 
 
12
  ENV SERVER_PORT=8012
13
  ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
14
  ENV AUTH_USERNAME=admin
15
- ENV AUTH_PASSWORD=123456
16
 
17
- # 配置 Nginx
18
  RUN rm -f /etc/nginx/sites-enabled/default && \
19
  printf 'server {\n\
20
  listen 7860;\n\
21
  server_name _;\n\
22
- \n\
23
- # 密码保护\n\
24
- auth_basic "kkFileView Access";\n\
25
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
26
- \n\
27
  location / {\n\
28
  proxy_pass http://127.0.0.1:8012;\n\
29
  proxy_set_header Host $host;\n\
@@ -39,41 +38,40 @@ RUN rm -f /etc/nginx/sites-enabled/default && \
39
  RUN printf '#!/bin/bash\n\
40
  set -e\n\
41
  \n\
42
- echo "=== kkFileView with Password Protection ==="\n\
43
- echo ""\n\
44
  \n\
45
- # 创建密码文件\n\
46
- echo "Creating password file..."\n\
47
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
48
- echo "✓ Username: $AUTH_USERNAME"\n\
49
- echo "✓ Password: [HIDDEN]"\n\
50
- echo ""\n\
51
  \n\
52
- # 启动 Xvfb\n\
53
  echo "Starting Xvfb..."\n\
54
  Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
55
  export DISPLAY=:99\n\
56
  sleep 2\n\
57
- echo "✓ Xvfb started"\n\
58
- echo ""\n\
59
  \n\
60
- # 启动 kkFileView(后台运行在 8012)\n\
61
- echo "Starting kkFileView on port 8012..."\n\
62
- /opt/kkFileView/bin/kkFileView --server.port=8012 >/tmp/kkfileview.log 2>&1 &\n\
63
- KKFILEVIEW_PID=$!\n\
64
- echo "✓ kkFileView PID: $KKFILEVIEW_PID"\n\
65
  \n\
66
- # 等待 kkFileView 启动\n\
67
- echo "Waiting for kkFileView to be ready..."\n\
68
- sleep 10\n\
 
 
 
 
 
 
 
69
  \n\
70
- # 启动 Nginx)\n\
71
- echo "Starting Nginx on port 7860..."\n\
72
- echo "✓ Ready! Access with username and password"\n\
73
- echo ""\n\
74
  nginx -g "daemon off;"\n' > /start.sh && \
75
  chmod +x /start.sh
76
 
77
  EXPOSE 7860
78
 
 
79
  CMD ["/start.sh"]
 
2
 
3
  USER root
4
 
5
+ # 安装 Nginx, xvfb, curl
6
  RUN apt-get update && apt-get install -y \
7
  nginx \
8
  apache2-utils \
9
  xvfb \
10
+ curl \
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
+ # 环境变量
14
  ENV SERVER_PORT=8012
15
  ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
16
  ENV AUTH_USERNAME=admin
17
+ ENV AUTH_PASSWORD=yourpassword
18
 
19
+ # 配置 Nginx (监听 7860 -> 转发 8012)
20
  RUN rm -f /etc/nginx/sites-enabled/default && \
21
  printf 'server {\n\
22
  listen 7860;\n\
23
  server_name _;\n\
24
+ auth_basic "Restricted Access";\n\
 
 
25
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
 
26
  location / {\n\
27
  proxy_pass http://127.0.0.1:8012;\n\
28
  proxy_set_header Host $host;\n\
 
38
  RUN printf '#!/bin/bash\n\
39
  set -e\n\
40
  \n\
41
+ echo "=== Starting Services ==="\n\
 
42
  \n\
43
+ # 1. 配置密码\n\
44
+ echo "Configuring password..."\n\
45
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
 
 
 
46
  \n\
47
+ # 2. 启动 Xvfb\n\
48
  echo "Starting Xvfb..."\n\
49
  Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
50
  export DISPLAY=:99\n\
51
  sleep 2\n\
 
 
52
  \n\
53
+ # 3. 启动 kkFileView\n\
54
+ echo "Starting kkFileView backend on 8012..."\n\
55
+ # 将日志重定向到文件,避免干扰控制台,同时后台运行\n\
56
+ /opt/kkFileView/bin/kkFileView --server.port=8012 > /var/log/kkfileview.log 2>&1 &\n\
 
57
  \n\
58
+ # 4. 等待 kkFileView 启动\n\
59
+ echo "Waiting for backend to be ready..."\n\
60
+ for i in {1..60}; do\n\
61
+ if curl -s http://127.0.0.1:8012 > /dev/null; then\n\
62
+ echo "✓ Backend is ready!"\n\
63
+ break\n\
64
+ fi\n\
65
+ echo "Waiting... ($i/60)"\n\
66
+ sleep 2\n\
67
+ done\n\
68
  \n\
69
+ # 5. 启动 Nginx\n\
70
+ echo "Starting Nginx on 7860..."\n\
 
 
71
  nginx -g "daemon off;"\n' > /start.sh && \
72
  chmod +x /start.sh
73
 
74
  EXPOSE 7860
75
 
76
+ ENTRYPOINT []
77
  CMD ["/start.sh"]