一般情况下,直接使用乐创者默认的镜像即可,遇到以下情况需进行自行镜像制作:

  • 乐创者的镜像的应用上下文默认是:ROOT,如果需要其他方式上下文名称时;
  • 乐创者的镜像基于x86CPU架构制作,当需要部署到非x86架构的机器上时;
  • 镜像中第三方依赖的包不满足时。

一、准备工作

1.1 安装 docker打包环境

以Ubuntu 24.04.4 LTS为例,简单介绍如何在线安装Docker。
先找一台可以访问互联网的机器(以下简称:打包机器),执行安装命令:

# 更新源
sudo apt update

# 安装docker
sudo apt install -y docker.io

# 启动并开机自启
sudo systemctl enable --now docker

# 将当前用户加入docker组,免sudo执行docker
sudo usermod -aG docker $USER

# 验证,**重新登录 shell 生效**:退出当前 ssh 会话,重新 ssh 登录服务器,否则 docker 组不生效
docker version

1.2 镜像命名规范

以下为乐创者官方标准镜像制作标准:

IMAGE 包含内容 备注
tomcat-lczserver tomcat10+jre17+lczServer tomcat:10.1-jre17-temurin、bisheng-jre-17.0.19、lczServer.war
lcz-platform lczPlatformServer 平台微服务
lcz-messagecenter lczMessageCenterServer 消息中心微服务
lcz-batchwork lczBatchWorkServer 离线数据开发微服务 + python3(time、requests、json、pandas等,不支持python2)
lcz-schedule lczScheduleServer 调度微服务
lcz-dataprovide lczDataProvideServer 数据服务微服务

所有的微服务都是基于基础镜像:bisheng-jre:17.0.19

以下为中间件镜像制作标准:

IMAGE 包含内容 备注
bisheng-jre bisheng-jre-17.0.19 华为毕昇jre17,基于基础镜像:openeuler/openeuler:22.03-lts-sp3
nginx-lcz nginx+lczWeb nginx:1.30.4-alpine、lczWeb:以lcz开头的静态资源目录(如:lczCommon、lczCreater、lczReport等)
valkey-lcz valkey:8.1.4-alpine 状态服务器(redis替代),项目也可以拉取redis相关版本官方镜像
mongo mongo-7.0 直接使用官方mongo-7.0镜像
openoffice libreoffice-unoserver:24.2 直接使用官方镜像:libreofficedocker/libreoffice-unoserver:24.2

二、制作过程

本章节主要介绍乐创者镜像制作过程,不包含直接使用第三方官方镜像。

  • 镜像命名规则:仓库地址/项目/镜像名:版本
  • harbor.local:用于指向本地镜像仓库地址,固化使用此名称
  • 项目:固化lcz
  • 版本:前两位按照lcz产品版本号变更,最后一位按照镜像打包递增

打包机器上,创建打包工作目录:~/work/lcz-build

mkdir -p ~/work/lcz-build

2.1 tomcat-lczserver

2.1.1 创建目录

在lcz-build下,新建目录tomcat-lczserver,

mkdir -p ~/work/lcz-build/tomcat-lczserver

2.1.2 上传文件

  • 上传lczServer.war
  • 上传build\docker-build\lcz-tomcat10\Dockerfile
  • 离线模式:上传tomcat10.1-jre17.tar

2.1.3 导入tomcat镜像(离线模式)

# 将本地离线 tomcat10 基础镜像tar包导入docker本地镜像库
sudo docker load -i ~/work/lcz-build/tomcat-lczserver/tomcat10.1-jre17.tar

2.1.4 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/tomcat-lczserver

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/tomcat-lczserver:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/tomcat-lczserver:8.1.0 -o tomcat-lczserver-8.1.0.tar

2.2 微服务

2.2.1 导入lcz-jre镜像

2.2.1.1 创建目录

在lcz-build下,新建目录lcz-jre,

mkdir -p ~/work/lcz-build/lcz-jre

# 切到工作目录
cd ~/work/lcz-build/lcz-jre

2.2.1.2 上传文件

  • 离线模式:上传bisheng-jre-17.0.19.tar

2.2.1.3 导入镜像

# 将本地离线 bisheng-jre-17 基础镜像tar包导入docker本地镜像库
sudo docker load -i ~/work/lcz-build/lcz-jre/bisheng-jre-17.0.19.tar

#查看镜像
docker images

2.2.2 lczPlatformServer

2.2.2.1 创建目录

在lcz-build下,新建目录 microServer/lczPlatform/public-jar,

mkdir -p ~/work/lcz-build/microServer/lczPlatform/public-jar
cd ~/work/lcz-build/lczPlatform

2.2.2.2 上传文件

  • 上传 lczPlatformServer 整目录
  • 上传build\docker-build\microServer\lczPlatform\Dockerfile

2.2.2.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/microServer/lczPlatform

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/lcz-platform:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/lcz-platform:8.1.0 -o lcz-platform-8.1.0.tar

2.2.3 lczMessageCenterServer

2.2.3.1 创建目录

在lcz-build下,新建目录 microServer/lczMessageCenter/public-jar,

mkdir -p ~/work/lcz-build/microServer/lczMessageCenter/public-jar
cd ~/work/lcz-build/microServer/lczMessageCenter

2.2.3.2 上传文件

  • 上传 lczMessageCenterServer 整目录
  • 上传build\docker-build\microServer\lczMessageCenter\Dockerfile

2.2.3.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/lczMessageCenter

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/lcz-messagecenter:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/lcz-messagecenter:8.1.0 -o lcz-messagecenter-8.1.0.tar

2.2.4 lczBatchWorkServer

2.2.4.1 创建目录

在lcz-build下,新建目录 microServer/lczBatchWork/public-jar,

mkdir -p ~/work/lcz-build/microServer/lczBatchWork/public-jar
cd ~/work/lcz-build/microServer/lczBatchWork

2.2.4.2 上传文件

  • 上传 lczBatchWorkServer 整目录
  • 上传build\docker-build\microServer\lczBatchWork\Dockerfile

2.2.4.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/microServer/lczBatchWork

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/lcz-batchwork:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/lcz-batchwork:8.1.0 -o lcz-batchwork-8.1.0.tar

2.2.5 lczScheduleServer

2.2.5.1 创建目录

在lcz-build下,新建目录 microServer/lczSchedule/public-jar,

mkdir -p ~/work/lcz-build/microServer/lczSchedule/public-jar

# 切到工作目录
cd ~/work/lcz-build/microServer/lczSchedule

2.2.5.2 上传文件

  • 上传 lczScheduleServer 整目录
  • 上传build\docker-build\microServer\lczSchedule\Dockerfile

2.2.5.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/microServer/lczSchedule

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/lcz-schedule:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/lcz-schedule:8.1.0 -o lcz-schedule-8.1.0.tar

2.2.6 lczDataProvideServer

2.2.6.1 创建目录

在lcz-build下,新建目录 microServer/lczDataProvide/public-jar,

mkdir -p ~/work/lcz-build/microServer/lczDataProvide/public-jar
cd ~/work/lcz-build/microServer/lczDataProvide

2.2.6.2 上传文件

  • 上传 lczDataProvideServer 整目录
  • 上传build\docker-build\microServer\lczDataProvide\Dockerfile

2.2.6.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/microServer/lczDataProvide

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/lcz-dataprovide:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/lcz-dataprovide:8.1.0 -o lcz-dataprovide-8.1.0.tar

2.3 中间件

2.3.1 nginx

2.3.1.1 创建目录

在lcz-build下,新建目录 nginx-lcz,

mkdir -p ~/work/lcz-build/nginx-lcz/conf
mkdir -p ~/work/lcz-build/nginx-lcz/lcz-web

# 切到工作目录
cd ~/work/lcz-build/nginx-lcz

2.3.1.2 上传文件

  • 上传 build\docker-build\lcz‑nginx\Dockerfile
  • 离线模式:上传 nginx_1.30.4_alpine.tar
  • 上传 build\docker-build\lcz‑nginx\conf 目录
  • 上传 以lcz开头的静态资源目录 到lcz-web下

2.3.1.3 生成/导出镜像

# 切到工作目录
cd ~/work/lcz-build/nginx-lcz

# 创建镜像
sudo docker build --no-cache -t harbor.local/lcz/nginx-lcz:8.1.0 .

# 导出tar包,用于上传到 K8s 物理机
sudo docker save harbor.local/lcz/nginx-lcz:8.1.0 -o nginx-lcz-8.1.0.tar
作者:柳杨  创建时间:2026-09-09 11:11
最后编辑:柳杨  更新时间:2026-09-10 20:27