dragg2 commited on
Commit
444c787
·
verified ·
1 Parent(s): eb21930

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -33
Dockerfile CHANGED
@@ -2,39 +2,35 @@ FROM ymlisoft/kkfileview
2
 
3
  USER root
4
 
5
- # 安装工具
 
 
 
6
  RUN apt-get update && apt-get install -y \
7
  nginx \
8
  apache2-utils \
9
  xvfb \
10
  net-tools \
11
  curl \
 
 
 
12
  fonts-wqy-microhei \
13
  fonts-wqy-zenhei \
14
  fonts-arphic-ukai \
15
  fonts-arphic-uming \
16
  xfonts-75dpi \
17
  xfonts-100dpi \
18
- && rm -rf /var/lib/apt/lists/*
 
19
 
20
  ENV SERVER_PORT=8012
21
  ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
22
  ENV AUTH_USERNAME=admin
23
  ENV AUTH_PASSWORD=yourpassword
24
 
25
- # === 性能配置 ===
26
- # 1. 转换线程数
27
- ENV OFFICE_HOME_THREAD_COUNT=3
28
-
29
- # 2. 任务队列大小
30
- # 当并发请求超过线程数时,任务会进入队列等待
31
- ENV QUEUE_SIZE=300
32
-
33
- # 3. 缓存开关
34
- ENV CACHE_ENABLED=true
35
-
36
- # 4. 预览文件大小限制
37
- ENV FILE_UPLOAD_MAX_SIZE=200MB
38
 
39
  # Nginx 配置
40
  RUN rm -rf /etc/nginx/sites-enabled/* && \
@@ -42,13 +38,9 @@ RUN rm -rf /etc/nginx/sites-enabled/* && \
42
  printf 'server {\n\
43
  listen 7860 default_server;\n\
44
  server_name _;\n\
45
- \n\
46
- # 密码保护\n\
47
  auth_basic "Restricted Access";\n\
48
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
49
- \n\
50
  client_max_body_size 500M;\n\
51
- \n\
52
  location / {\n\
53
  proxy_pass http://127.0.0.1:8012;\n\
54
  proxy_set_header Host $http_host;\n\
@@ -59,36 +51,32 @@ RUN rm -rf /etc/nginx/sites-enabled/* && \
59
  }\n\
60
  }\n' > /etc/nginx/conf.d/kkfileview.conf
61
 
62
- # 启动脚本 (保持不变)
63
  RUN printf '#!/bin/bash\n\
64
  set -e\n\
65
  \n\
66
  echo "=== Starting Secure kkFileView ==="\n\
67
  \n\
68
- # 1. 找启动脚本路径\n\
69
  STARTUP_SCRIPT=$(find /opt -name "startup.sh" -o -name "kkFileView" | grep "bin/" | head -n 1)\n\
70
  KK_ROOT_DIR=$(dirname $(dirname "$STARTUP_SCRIPT"))\n\
71
- echo "Found root dir: $KK_ROOT_DIR"\n\
72
  \n\
73
- # 2. 配置密码\n\
74
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
75
  \n\
76
- # 3. 启动 Xvfb\n\
77
  Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
78
  export DISPLAY=:99\n\
79
  sleep 2\n\
80
  \n\
81
- # 4. 启动 kkFileView\n\
82
  echo "Starting kkFileView on port 8012..."\n\
83
- # 传递 JVM 参数以优化内存 (可选)\n\
84
- # export JAVA_OPTS="-Xmx2g -Xms512m"\n\
 
 
85
  if [[ "$STARTUP_SCRIPT" == *".sh" ]]; then\n\
86
- bash "$STARTUP_SCRIPT" &\n\
87
  else\n\
88
- "$STARTUP_SCRIPT" --server.port=8012 &\n\
89
  fi\n\
90
  \n\
91
- # 5. 追踪真实日志文件\n\
92
  echo "Waiting for log file..."\n\
93
  LOG_FILE="$KK_ROOT_DIR/log/kkFileView.log"\n\
94
  for i in {1..30}; do\n\
@@ -100,8 +88,7 @@ for i in {1..30}; do\n\
100
  sleep 1\n\
101
  done\n\
102
  \n\
103
- # 6. 等待端口就绪\n\
104
- echo "Waiting for backend port 8012..."\n\
105
  for i in {1..60}; do\n\
106
  if netstat -tuln | grep ":8012 " > /dev/null; then\n\
107
  echo "✓ Port 8012 is ready!"\n\
@@ -111,7 +98,6 @@ for i in {1..60}; do\n\
111
  sleep 2\n\
112
  done\n\
113
  \n\
114
- # 7. 启动 Nginx\n\
115
  echo "Starting Nginx on 7860..."\n\
116
  nginx -g "daemon off;"\n' > /start.sh && \
117
  chmod +x /start.sh
 
2
 
3
  USER root
4
 
5
+ # 1. 安装所有必要依赖
6
+ # ffmpeg: 用于视频转码
7
+ # fonts-*: 解决 CAD
8
+ # libfreetype6, fontconfig: 字体支持库
9
  RUN apt-get update && apt-get install -y \
10
  nginx \
11
  apache2-utils \
12
  xvfb \
13
  net-tools \
14
  curl \
15
+ ffmpeg \
16
+ libfreetype6 \
17
+ fontconfig \
18
  fonts-wqy-microhei \
19
  fonts-wqy-zenhei \
20
  fonts-arphic-ukai \
21
  fonts-arphic-uming \
22
  xfonts-75dpi \
23
  xfonts-100dpi \
24
+ && rm -rf /var/lib/apt/lists/* && \
25
+ fc-cache -fv
26
 
27
  ENV SERVER_PORT=8012
28
  ENV KKFILEVIEW_SECURITY_TRUST_HOST=default
29
  ENV AUTH_USERNAME=admin
30
  ENV AUTH_PASSWORD=yourpassword
31
 
32
+ # 修复 Aspose 字体问题
33
+ ENV JAVA_OPTS="-Dsun.java2d.fontpath=/usr/share/fonts -Djava.awt.headless=true"
 
 
 
 
 
 
 
 
 
 
 
34
 
35
  # Nginx 配置
36
  RUN rm -rf /etc/nginx/sites-enabled/* && \
 
38
  printf 'server {\n\
39
  listen 7860 default_server;\n\
40
  server_name _;\n\
 
 
41
  auth_basic "Restricted Access";\n\
42
  auth_basic_user_file /etc/nginx/.htpasswd;\n\
 
43
  client_max_body_size 500M;\n\
 
44
  location / {\n\
45
  proxy_pass http://127.0.0.1:8012;\n\
46
  proxy_set_header Host $http_host;\n\
 
51
  }\n\
52
  }\n' > /etc/nginx/conf.d/kkfileview.conf
53
 
54
+ # 启动脚本
55
  RUN printf '#!/bin/bash\n\
56
  set -e\n\
57
  \n\
58
  echo "=== Starting Secure kkFileView ==="\n\
59
  \n\
 
60
  STARTUP_SCRIPT=$(find /opt -name "startup.sh" -o -name "kkFileView" | grep "bin/" | head -n 1)\n\
61
  KK_ROOT_DIR=$(dirname $(dirname "$STARTUP_SCRIPT"))\n\
 
62
  \n\
 
63
  htpasswd -cb /etc/nginx/.htpasswd "$AUTH_USERNAME" "$AUTH_PASSWORD"\n\
64
  \n\
 
65
  Xvfb :99 -screen 0 1024x768x24 >/dev/null 2>&1 &\n\
66
  export DISPLAY=:99\n\
67
  sleep 2\n\
68
  \n\
 
69
  echo "Starting kkFileView on port 8012..."\n\
70
+ # 关键:确保 JAVA_OPTS 被传递\n\
71
+ # 如果脚本不支持 JAVA_OPTS 变量,我们尝试通过 export 注入\n\
72
+ export JAVA_OPTS="$JAVA_OPTS"\n\
73
+ \n\
74
  if [[ "$STARTUP_SCRIPT" == *".sh" ]]; then\n\
75
+ bash "$STARTUP_SCRIPT" 2>&1 | tee /var/log/kkfileview.log &\n\
76
  else\n\
77
+ "$STARTUP_SCRIPT" --server.port=8012 2>&1 | tee /var/log/kkfileview.log &\n\
78
  fi\n\
79
  \n\
 
80
  echo "Waiting for log file..."\n\
81
  LOG_FILE="$KK_ROOT_DIR/log/kkFileView.log"\n\
82
  for i in {1..30}; do\n\
 
88
  sleep 1\n\
89
  done\n\
90
  \n\
91
+ echo "Waiting for backend..."\n\
 
92
  for i in {1..60}; do\n\
93
  if netstat -tuln | grep ":8012 " > /dev/null; then\n\
94
  echo "✓ Port 8012 is ready!"\n\
 
98
  sleep 2\n\
99
  done\n\
100
  \n\
 
101
  echo "Starting Nginx on 7860..."\n\
102
  nginx -g "daemon off;"\n' > /start.sh && \
103
  chmod +x /start.sh