科艺知识库 ARM64

Posted on 2026-03-03 17:04  笔名钟意  阅读(4)  评论(0)    收藏  举报

前言

因某些需求需要一款文档管理与索引工具, 遂相中了科艺知识库, 并且构建了一份科艺知识库 arm64 架构版的, 记录构建过程.

部署

部署先放前面, 防止未来有急切的看客.

  1. 克隆源码:

  2. Docker 编排:

# 克隆代码
git clone https://git.thatcdn.cn/open/kykms.git

# 工作目录
cd ./kykms/deploy

# 启动编排: 镜像已经适配 amd64/arm64 双版本 根据平台自动拉取
docker compose up -d

构建

若看客系统架构非 amd64/arm64, 可参考构建过程.

elasticsearch

  1. 在 kykms/deploy/ES 目录下 Dockerfile 文件可知, arm64 架构没有 elasticsearch:7.6.1 版本, 遂换成 7.8.1
  2. 相应的 ES 目录下 elasticsearch.tar 打包的 analysis-ik 这个插件也需要换成对应的版本, 这个网址有存档 analysis-ik 全版本 => analysis-ik-all
  3. 下载对应的 analysis-ik.zip 解压再压缩为 analysis-ik.tar 替换原来的, 注意压缩包展开就是全部文件, 不要封一层目录.
  4. 至此修改 Dockerfile 并且构建得到 kykms-es
# 更新对应镜像
FROM elasticsearch:7.8.1
# 利用 ADD 自动解压到目标目录
ADD elasticsearch.tar /usr/share/elasticsearch/plugins/analysis-ik
# 默认工作目录,以免影响 ES 启动
WORKDIR /usr/share/elasticsearch

mysql

在 kykms/deploy/DB 目录下 Dockerfile, 检查 mysql:5.7 是否有对应架构版本. 直接构建得到 kykms-mysql

redis

随便用一个版本为6就行, 构建得到 kykms-redis

web

  1. 在 kykms/ant-design-vue-jeecg 目录下用node构建前端项目得到 dist
  2. 构建镜像得到 kykms-web

api

  1. 在 kykms/jeecg-boot 目录下用maven/java构建后端项目得到 jar, 用 java8 的基础镜像安装libreoffice库 (WORD转PDF的). 我的建议是随便一个amd设备运行 registry.cn-guangzhou.aliyuncs.com/kyxxjs/kykms:comm 取得对应的 jar 和 字体, 省去构建过程.
  2. 构建镜像得到 kykms-api
FROM docker.io/eclipse-temurin:8u472-b08-jdk
LABEL maintainer="Joney K."
# 因为是 ARM64 架构,apt 源必须指向 ports.ubuntu.com
# 显式替换为对应架构加速源
RUN sed -i 's/archive.ubuntu.com/ports.ubuntu.com/g' /etc/apt/sources.list && \
    sed -i 's/security.ubuntu.com/ports.ubuntu.com/g' /etc/apt/sources.list && \
    apt-get update && \
    apt-get install -y --no-install-recommends libreoffice fontconfig && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*
COPY ./simsun.ttc /usr/share/fonts/simsun.ttc
RUN fc-cache -fv
WORKDIR /kykms
COPY ./jeecg-boot-module-system-2.4.5.jar ./app.jar
EXPOSE 8080
CMD ["java", "-Dfile.encoding=utf-8", "-jar", "app.jar"]

编排

替换 kykms/deploy/docker-compose.yml 里面的 image, 都换成新构建的即可