kkFileView
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等
下载源码包
从以下链接下载源码包
解压源码
export KK_VERSION=4.4.0
tar -zxvf file-online-preview-v${KK_VERSION}.tar.gz1
2
2
创建maven配置文件
cat > settings.xml <<"EOF"
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<mirrorOf>central</mirrorOf>
<id>alimaven</id>
<name>阿里云中央仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
</settings>
EOF1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
编译打包
shell
docker run --rm \
--cpus="2" \
-m="2g" \
-v "/data/download/maven/repository":/root/.m2 \
-v "$PWD":/app \
-w /app \
maven:3.9-eclipse-temurin-8 \
mvn clean package -DskipTests \
-s settings.xml \
-f file-online-preview-v4.4.0/server/pom.xml1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
整理文件
mv file-online-preview-v${KK_VERSION}/server/target/kkFileView-${KK_VERSION}.tar.gz .
rm -rf file-online-preview-v${KK_VERSION}/1
2
2
创建启动脚本
shell
cat > docker-entrypoint.sh <<"EOF"
#!/bin/bash
set -euo pipefail
# 设置 Jar 启动的命令
JAR_CMD=${JAR_CMD:--jar bin/kkFileView-4.4.0.jar}
# 设置 JVM 参数
JAVA_OPTS=${JAVA_OPTS:--Xms128m -Xmx1024m}
# 设置 Spring Boot 参数
SPRING_OPTS=${SPRING_OPTS:---spring.config.location=config/application.properties}
# 设置应用启动命令
RUN_CMD=${RUN_CMD:-java ${JAVA_OPTS} ${JAR_CMD} ${SPRING_OPTS}}
# 打印命令并启动
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting application: ${RUN_CMD}"
exec ${RUN_CMD}
EOF
chmod +x docker-entrypoint.sh1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
创建 Dockerfile
如果有自定义的字体库需要导入进去,在Dockerfile中将其添加进去: ADD fonts/* /usr/share/fonts/ateng/custom/
dockerfile
cat > Dockerfile <<"EOF"
FROM linuxserver/libreoffice:7.6.7
ARG UID=1412
ARG GID=1412
ARG USER_NAME=admin
ARG GROUP_NAME=ateng
ARG KK_VERSION=4.4.0
ARG WORK_DIR=/opt/kkFileView-${KK_VERSION}
WORKDIR ${WORK_DIR}
ADD kkFileView-${KK_VERSION}.tar.gz /tmp
COPY docker-entrypoint.sh .
RUN sed -i 's|dl-cdn.alpinelinux.org|mirrors.aliyun.com|g' /etc/apk/repositories && \
apk update && \
apk add --no-cache \
tzdata \
curl \
ca-certificates \
fontconfig \
su-exec \
shadow \
bash && \
apk add --no-cache \
font-dejavu \
font-liberation \
font-noto \
font-noto-cjk \
font-noto-extra && \
fc-cache -f -v && \
mv /tmp/kkFileView-${KK_VERSION}/* . && \
groupadd -g ${GID} ${GROUP_NAME} && \
useradd -u ${UID} -g ${GROUP_NAME} -m ${USER_NAME} && \
chown ${UID}:${GID} -R ${WORK_DIR} && \
rm -rf /var/cache/apk/* /tmp/* /var/tmp/*
ENV KKFILEVIEW_BIN_FOLDER=${WORK_DIR}/bin
ENV TZ=Asia/Shanghai
ENV LANG=zh_CN.UTF-8
EXPOSE 8012
ENTRYPOINT ["./docker-entrypoint.sh"]
EOF1
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
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
构建镜像
docker build -t registry.lingo.local/service/kkfileview:v4.4.0-alpine .1
运行测试
docker run --rm --name kkfileview \
-p 18012:8012 \
-e JAR_CMD="-jar bin/kkFileView-4.4.0.jar" \
-e JAVA_OPTS="-Xms1024m -Xmx1024m" \
-e SPRING_OPTS="--spring.config.location=config/application.properties" \
registry.lingo.local/service/kkfileview:v4.4.0-alpine1
2
3
4
5
6
2
3
4
5
6
推送镜像到仓库
docker push registry.lingo.local/service/kkfileview:v4.4.0-alpine1
保存镜像
docker save registry.lingo.local/service/kkfileview:v4.4.0-alpine |
gzip -c > image-kkfileview_v4.4.0-alpine.tar.gz1
2
2