dragg2 commited on
Commit
b9de94c
·
verified ·
1 Parent(s): 763ac4b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +31 -17
Dockerfile CHANGED
@@ -1,4 +1,4 @@
1
- FROM ymlisoft/kkfileview
2
 
3
  USER root
4
 
@@ -17,26 +17,27 @@ ENV AUTH_USERNAME=admin
17
  ENV AUTH_PASSWORD=yourpassword
18
 
19
  # Nginx 配置
20
- RUN rm -f /etc/nginx/sites-enabled/default && \
 
21
  printf 'server {\n\
22
  listen 7860 default_server;\n\
23
  server_name _;\n\
24
  \n\
 
25
  auth_basic "Restricted Access";\n\
26
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
 
27
  client_max_body_size 500M;\n\
28
  \n\
29
  location / {\n\
30
  proxy_pass http://127.0.0.1:8012;\n\
31
- proxy_set_header Host $host;\n\
32
  proxy_set_header X-Real-IP $remote_addr;\n\
33
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\
34
- proxy_set_header X-Forwarded-Proto http;\n\
35
- proxy_redirect off;\n\
36
  proxy_buffering off;\n\
37
  }\n\
38
- }\n' > /etc/nginx/sites-available/kkfileview && \
39
- ln -s /etc/nginx/sites-available/kkfileview /etc/nginx/sites-enabled/
40
 
41
  # 启动脚本
42
  RUN printf '#!/bin/bash\n\
@@ -46,7 +47,8 @@ echo "=== Starting Secure kkFileView ==="\n\
46
  \n\
47
  # 1. 找启动脚本路径\n\
48
  STARTUP_SCRIPT=$(find /opt -name "startup.sh" -o -name "kkFileView" | grep "bin/" | head -n 1)\n\
49
- echo "Found startup script: $STARTUP_SCRIPT"\n\
 
50
  \n\
51
  # 2. 配置密码\n\
52
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
@@ -58,18 +60,30 @@ sleep 2\n\
58
  \n\
59
  # 4. 启动 kkFileView\n\
60
  echo "Starting kkFileView on port 8012..."\n\
61
- # 创建日志文件并开始后台 tail\n\
62
- touch /var/log/kkfileview.log\n\
63
- tail -f /var/log/kkfileview.log &\n\
64
- \n\
65
  if [[ "$STARTUP_SCRIPT" == *".sh" ]]; then\n\
66
- bash "$STARTUP_SCRIPT" >> /var/log/kkfileview.log 2>&1 &\n\
67
  else\n\
68
- "$STARTUP_SCRIPT" --server.port=8012 >> /var/log/kkfileview.log 2>&1 &\n\
69
  fi\n\
70
  \n\
71
- # 5. 等待端口\n\
72
- echo "Waiting for backend..."\n\
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  for i in {1..60}; do\n\
74
  if netstat -tuln | grep ":8012 " > /dev/null; then\n\
75
  echo "✓ Port 8012 is ready!"\n\
@@ -79,7 +93,7 @@ for i in {1..60}; do\n\
79
  sleep 2\n\
80
  done\n\
81
  \n\
82
- # 6. 启动 Nginx\n\
83
  echo "Starting Nginx on 7860..."\n\
84
  nginx -g "daemon off;"\n' > /start.sh && \
85
  chmod +x /start.sh
 
1
+ FROM ymlisoft/kkfileview:4.4.0
2
 
3
  USER root
4
 
 
17
  ENV AUTH_PASSWORD=yourpassword
18
 
19
  # Nginx 配置
20
+ RUN rm -rf /etc/nginx/sites-enabled/* && \
21
+ rm -rf /etc/nginx/conf.d/* && \
22
  printf 'server {\n\
23
  listen 7860 default_server;\n\
24
  server_name _;\n\
25
  \n\
26
+ # 密码保护\n\
27
  auth_basic "Restricted Access";\n\
28
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
29
+ \n\
30
  client_max_body_size 500M;\n\
31
  \n\
32
  location / {\n\
33
  proxy_pass http://127.0.0.1:8012;\n\
34
+ proxy_set_header Host $http_host;\n\
35
  proxy_set_header X-Real-IP $remote_addr;\n\
36
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\
37
+ proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;\n\
 
38
  proxy_buffering off;\n\
39
  }\n\
40
+ }\n' > /etc/nginx/conf.d/kkfileview.conf
 
41
 
42
  # 启动脚本
43
  RUN printf '#!/bin/bash\n\
 
47
  \n\
48
  # 1. 找启动脚本路径\n\
49
  STARTUP_SCRIPT=$(find /opt -name "startup.sh" -o -name "kkFileView" | grep "bin/" | head -n 1)\n\
50
+ KK_ROOT_DIR=$(dirname $(dirname "$STARTUP_SCRIPT"))\n\
51
+ echo "Found root dir: $KK_ROOT_DIR"\n\
52
  \n\
53
  # 2. 配置密码\n\
54
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
 
60
  \n\
61
  # 4. 启动 kkFileView\n\
62
  echo "Starting kkFileView on port 8012..."\n\
 
 
 
 
63
  if [[ "$STARTUP_SCRIPT" == *".sh" ]]; then\n\
64
+ bash "$STARTUP_SCRIPT" &\n\
65
  else\n\
66
+ "$STARTUP_SCRIPT" --server.port=8012 &\n\
67
  fi\n\
68
  \n\
69
+ # 5. 追踪真实日志文件\n\
70
+ # kkFileView 启动后会创建 log/kkFileView.log\n\
71
+ echo "Waiting for log file..."\n\
72
+ LOG_FILE="$KK_ROOT_DIR/log/kkFileView.log"\n\
73
+ \n\
74
+ # 循环等待日志文件生成\n\
75
+ for i in {1..30}; do\n\
76
+ if [ -f "$LOG_FILE" ]; then\n\
77
+ echo "✓ Found log file: $LOG_FILE"\n\
78
+ # 启动后台 tail 进程显示日志\n\
79
+ tail -f "$LOG_FILE" &\n\
80
+ break\n\
81
+ fi\n\
82
+ sleep 1\n\
83
+ done\n\
84
+ \n\
85
+ # 6. 等待端口就绪\n\
86
+ echo "Waiting for backend port 8012..."\n\
87
  for i in {1..60}; do\n\
88
  if netstat -tuln | grep ":8012 " > /dev/null; then\n\
89
  echo "✓ Port 8012 is ready!"\n\
 
93
  sleep 2\n\
94
  done\n\
95
  \n\
96
+ # 7. 启动 Nginx\n\
97
  echo "Starting Nginx on 7860..."\n\
98
  nginx -g "daemon off;"\n' > /start.sh && \
99
  chmod +x /start.sh