三步安装kkfile
- 下载kkfileview镜像包(换了LibreOffice插件,修复了官方镜像启动问题)
- 下载链接:https://pan.baidu.com/s/1DJqvNjdQBZ9Ayv5-XGKPwA?pwd=f98q
- 导入镜像:docker load < custom-kkfileview.tar
- 编写docker-compose文件:vi docker-compose.yml
version: "3"
services:
kkfileview:
image: custom/kkfileview:latest
container_name: kkfileview
ports:
- "18012:8012"
- 启动服务:docker-compose up -d
- 打开网页查看:http://192.168.142.31:18012/index
注意:至此kkfileview已经部署安装完成,下面是整个镜像打包部署踩坑历程
官网源码调整
- 官网下载源码:https://gitee.com/kekingcn/file-online-preview/tree/master/#github
- 使用idea打开,打包编译完,直接运行主服务:ServerMain
3.如果启动失败,可能是端口被占用了,可以将2001和2002端口kill,再重启
- 打开cmd或powershell(推荐使用powershell,cmd会少很多包)
- 查找端口占用情况:netstat -ano | findstr ‘2001 2002’
- 将占用进程全部kill:taskkill /T /F /PID 12220
-
根据网页的发版记录显示以及项目的Dockerfile表明,底层集成OpenOffice替换为LibreOffice,但是office-plugin依赖用的还是openoffice?
-
问题解决,把office-plugin依赖中的openoffice换成LibreOffice
<dependency>
<groupId>org.libreoffice</groupId>
<artifactId>libreoffice</artifactId>
<version>7.1.4</version>
</dependency>
- 重新打包
镜像制作
(服务器文件预览)
-
将打好的包(fonts目录以及server/targetkkFileView-4.1.0-SNAPSHOT.tar.gz)上传到服务器中
-
编写镜像文件:vi Dockerfile
FROM ubuntu:20.04
MAINTAINER chenjh "842761733@qq.com"
ADD ./kkFileView-*.tar.gz /opt/
ADD ./fonts/* /usr/share/fonts/chinese/
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" > /etc/apt/sources.list &&\
apt-get clean && apt-get update &&\
apt-get install -y locales && apt-get install -y language-pack-zh-hans &&\
localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8 && locale-gen zh_CN.UTF-8 &&\
export DEBIAN_FRONTEND=noninteractive &&\
apt-get install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
apt-get install -y libxrender1 && apt-get install -y libxt6 && apt-get install -y libxext-dev && apt-get install -y libfreetype6-dev &&\
apt-get install -y wget && apt-get install -y ttf-mscorefonts-installer && apt-get install -y fontconfig &&\
apt-get install ttf-wqy-microhei &&\
apt-get install ttf-wqy-zenhei &&\
apt-get install xfonts-wqy &&\
cd /tmp &&\
wget https://kkfileview.keking.cn/server-jre-8u251-linux-x64.tar.gz &&\
tar -xf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ &&\
# 安装 OpenOffice
# wget https://kkfileview.keking.cn/Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz -cO openoffice_deb.tar.gz &&\
# tar -xf /tmp/openoffice_deb.tar.gz && cd /tmp/zh-CN/DEBS &&\
# dpkg -i *.deb && dpkg -i desktop-integration/openoffice4.1-debian-menus_4.1.6-9790_all.deb &&\
# 安装 libreoffice
apt-get install -y libxinerama1 libcairo2 libcups2 libx11-xcb1 &&\
wget https://kkfileview.keking.cn/LibreOffice_7.1.4_Linux_x86-64_deb.tar.gz -cO libreoffice_deb.tar.gz &&\
tar -xf /tmp/libreoffice_deb.tar.gz && cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_deb/DEBS &&\
dpkg -i *.deb &&\
rm -rf /tmp/* && rm -rf /var/lib/apt/lists/* &&\
cd /usr/share/fonts/chinese &&\
mkfontscale &&\
mkfontdir &&\
fc-cache -fv
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
ENV KKFILEVIEW_BIN_FOLDER /opt/kkFileView-4.1.0-SNAPSHOT/bin
CMD ["java","-Dfile.encoding=UTF-8","-Dspring.config.location=/opt/kkFileView-4.1.0-SNAPSHOT/config/application.properties","-jar","/opt/kkFileView-4.1.0-SNAPSHOT/bin/kkFileView-4.1.0-SNAPSHOT.jar"]
下载的源码Dockerfile中,最后的启动命令用的是ENTRYPOINT,但是构建出来的镜像一直启动不起来,后面改成CMD竟然意外ok~,注意docker-comopose不用用command命令,防止将启动命令覆盖
3. 编写镜像构建文件:vi build.sh
docker stop kkfileview
docker rm kkfileview
docker rmi custom/kkfileview
docker build -t custom/kkfileview .
-
执行脚本,构建镜像(这个需要等很长时间下载依赖):sh build.sh
-
查看镜像是否成功构建:docker images
-
导出镜像:docker save -o custom-kkfileview.tar custom/kkfileview
至此整个kkfileview的镜像制作完成~