一、克隆仓库到本地
建议通过gitee下载,速度会更快:
https://gitee.com/kekingcn/file-online-preview.git
二、构建基础镜像
进入到已下载目录的kkFileView\docker\kkfileview-base 文件夹下:

直接用官方的dockerfile构建,会报错。建议修改后再构建(参考了kkFileView4.4.0镜像创建_kkfileview-4.4.0-CSDN博客),修改后的dockerfile如下:
FROM registry.cn-shanghai.aliyuncs.com/mamy-ns/ubuntu:24.04
RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list &&\
sed -i 's@//security.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list &&\
sed -i 's@//ports.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates openjdk-8-jre tzdata locales xfonts-utils fontconfig \
software-properties-common && \
add-apt-repository ppa:libreoffice/ppa && \
apt-get update && \
apt-get install -y --no-install-recommends \
libreoffice-nogui \
libreoffice-core-nogui \
fonts-noto \
fonts-noto-cjk \
fonts-wqy-microhei \
fonts-dejavu
RUN echo 'Asia/Shanghai' > /etc/timezone &&\
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8 &&\
locale-gen zh_CN.UTF-8 &&\
apt-get install -y --no-install-recommends ttf-mscorefonts-installer &&\
apt-get install -y --no-install-recommends ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy &&\
apt-get autoremove -y &&\
apt-get clean &&\
rm -rf /var/lib/apt/lists/*
# 内置一些常用的中文字体,避免普遍性乱码
ADD fonts/* /usr/share/fonts/chinese/
RUN cd /usr/share/fonts/chinese &&\
# 安装字体
mkfontscale &&\
mkfontdir &&\
fc-cache -fv
ENV LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8
执行如下命令创建基础镜像
docker build --tag keking/kkfileview-base:4.4.0 .

三、构建kkfileview镜像
用IDEA打开kkfileview项目,在idea 执行下面命令,生成 kkFileView-4.4.0.tar.gz
mvn clean package -DskipTests

进入到kkfileview 目录

执行构建镜像命令:
docker build -t kkfileview:4.4.0 .

四、运行验证
docker run -d -p 8013:8012 kkfileview:4.4.0


五、常见问题
1、错误 “Filename too long”
- 原因:通常是因为文件名的长度超过了系统或应用程序的默认限制
- 解决方式:kkFileView 依赖 LibreOffice 进行文档转换,而 LibreOffice 对文件路径长度有限制。我们可以通过修改 Java 的启动参数,为 LibreOffice 指定一个较短的工作临时目录。我是使用 Docker 部署 kkFileView,需要指定临时目录。
docker run -it -p 8013:8012 \
-v /tmp/kkfileview:/tmp/kkfileview \ # 挂载主机上的短路径到容器内
-e JAVA_OPTS="-Djava.io.tmpdir=/tmp/kkfileview -Dhome.temp.path=/tmp/kkfileview" \
keking/kkfileview
4151

被折叠的 条评论
为什么被折叠?



