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 ubuntu:22.04
ARG UID=1001
ARG GID=1001
ARG USER_NAME=admin
ARG GROUP_NAME=ateng
ARG KK_VERSION=4.4.0
ARG WORK_DIR=/opt/kkFileView-${KK_VERSION}
WORKDIR ${WORK_DIR}
COPY --from=eclipse-temurin:8 /opt/java/openjdk /opt/jdk
ADD kkFileView-${KK_VERSION}.tar.gz /tmp
COPY docker-entrypoint.sh .
RUN sed -i 's|http://.*ubuntu.com|http://mirrors.aliyun.com|g' /etc/apt/sources.list && \
apt-get update && \
apt-get install --no-install-recommends -y \
locales \
tzdata \
curl \
wget \
unzip \
ca-certificates \
fontconfig \
libreoffice-nogui=1:7.3.7-0ubuntu0.22.04.9 && \
apt-get install --no-install-recommends -y \
fonts-dejavu \
fonts-liberation \
fonts-noto \
fonts-noto-cjk \
fonts-noto-color-emoji \
fonts-noto-extra \
fonts-noto-ui-core \
fonts-droid-fallback && \
fc-cache -f -v && \
apt-get clean && \
echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen zh_CN.UTF-8 && \
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/lib/apt/lists/* /tmp/* /var/tmp/*
ENV KKFILEVIEW_BIN_FOLDER=${WORK_DIR}/bin
ENV JAVA_HOME=/opt/jdk
ENV PATH=$PATH:$JAVA_HOME/bin
ENV TZ=Asia/Shanghai
ENV LANG=zh_CN.UTF-8
USER ${UID}:${GID}
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
46
47
48
49
50
51
52
53
54
55
56
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
构建镜像
docker build -t registry.lingo.local/service/kkfileview:v4.4.0 .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.01
2
3
4
5
6
2
3
4
5
6
推送镜像到仓库
docker push registry.lingo.local/service/kkfileview:v4.4.01
保存镜像
docker save registry.lingo.local/service/kkfileview:v4.4.0 |
gzip -c > image-kkfileview_v4.4.0.tar.gz1
2
2