前言
因某些需求需要一款文档管理与索引工具, 遂相中了科艺知识库, 并且构建了一份科艺知识库 arm64 架构版的, 记录构建过程.
部署
部署先放前面, 防止未来有急切的看客.
克隆源码:
Docker 编排:
1
2
3
4
5
6
7
8# 克隆代码
git clone https://git.thatcdn.cn/open/kykms.git
# 工作目录
cd ./kykms/deploy
# 启动编排: 镜像已经适配 amd64/arm64 双版本 根据平台自动拉取
docker compose up -d
构建
若看客系统架构非 amd64/arm64, 可参考构建过程.
elasticsearch
- 在 kykms/deploy/ES 目录下 Dockerfile 文件可知, arm64 架构没有 elasticsearch:7.6.1 版本, 遂换成 7.8.1
- 相应的 ES 目录下 elasticsearch.tar 打包的 analysis-ik 这个插件也需要换成对应的版本, 这个网址有存档 analysis-ik 全版本 => analysis-ik-all
- 下载对应的 analysis-ik.zip 解压再压缩为 analysis-ik.tar 替换原来的, 注意压缩包展开就是全部文件, 不要封一层目录.
- 至此修改 Dockerfile 并且构建得到 kykms-es
es-build 1
2
3
4
5
6# 更新对应镜像
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
- 在 kykms/ant-design-vue-jeecg 目录下用node构建前端项目得到 dist
- 构建镜像得到 kykms-web
api
- 在 kykms/jeecg-boot 目录下用maven/java构建后端项目得到 jar, 用 java8 的基础镜像安装libreoffice库 (WORD转PDF的). 我的建议是随便一个amd设备运行 registry.cn-guangzhou.aliyuncs.com/kyxxjs/kykms:comm 取得对应的 jar 和 字体, 省去构建过程.
- 构建镜像得到 kykms-api
api-build 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16FROM 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, 都换成新构建的即可