最近单位要把项目部署在arm架构服务器上,但是官方并未提供该版本,所以只能自己下载源码打包。
1.源码地址
GitHub - kekingcn/kkFileView: Universal File Online Preview Project based on Spring-Boot
2.源码结构
如图:(1)docker 文件夹中是基础镜像,下边是基础镜像的dockerfile
- FROM ubuntu:24.04
-
- RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list.d/ubuntu.sources &&\
- sed -i 's@//security.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list.d/ubuntu.sources &&\
- sed -i 's@//ports.ubuntu.com@//mirrors.aliyun.com@g' /etc/apt/sources.list.d/ubuntu.sources &&\
- apt-get update &&\
- export DEBIAN_FRONTEND=noninteractive &&\
- apt-get install -y --no-install-recommends openjdk-8-jre tzdata locales xfonts-utils fontconfig libreoffice-nogui &&\
- 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
from ubuntu:24.04 代表以 ubuntu:24.04为基础打包,在此基础上安装jdk和预置字体
apt-get install -y --no-install-recommends openjdk-8-jre tzdata locales xfonts-utils fontconfig libreoffice-nogui 代表安装jdk
(2) 项目中cad相关预览包为收费的,自行打包编译的时候如果不需要注掉即可,否则可能报错
//import com.aspose.cad.*; //import com.aspose.cad.fileformats.cad.CadDrawTypeMode; //import com.aspose.cad.fileformats.tiff.enums.TiffExpectedFormat; //import com.aspose.cad.imageoptions.*;
3.打包基础镜像 (没有arm需求的可以跳过此步骤)
按readme.md中的方法,执行打包命令,我这里是本地(amd环境)打包arm镜像,所以使用docker buildx
docker buildx build --platform linux/amd64,linux/arm64 -t {私服:镜像名}:{标签} --push .
这一步打包非常慢,所以也可以换成别人打包过的 (在此跪谢大哥) https://hubgw.docker.com/r/killsnow/kkfileview-jdk/tags
4.打包kkfileview服务镜像
dockerfile中基础镜像换成上一步中打包好的
使用docker buildx 命令打包 kkfileview镜像
这里也可以用大哥打包好的(再次跪谢 yimik/kkfileview:latest)
5.坑
官方readme.md中的命令是错的 不要加等号
评论记录:
回复评论: