构建 API 镜像
ShopTNT 默认使用官方 API 镜像,直接执行一键部署即可,无需自行构建。本指南适用于修改后端源码后,需要构建并发布自定义 API 镜像的场景。
一、准备构建环境
构建服务器需要安装 Git、JDK 21、Maven 和 Docker,具体安装方式请参考基础环境配置。
# 检查 Git 版本
git --version
# 检查 Java 版本,应为 JDK 21
java -version
# 检查 Maven 版本
mvn -v
# 检查 Docker 版本
docker --version
使用私有镜像仓库时,需要提前登录:
# 登录镜像仓库,请替换为实际仓库域名
docker login registry.example.com
二、构建镜像
- shoptnt
- b2b2c
- s2b2c
- b2b2c微服务
- s2b2c微服务
1. 下载源码
# 下载 shoptnt 源码
git clone https://gitee.com/bbc-se/shoptnt.git
2. 构建镜像
进入源码目录并运行镜像构建脚本:
# 进入源码目录
cd shoptnt
# 执行镜像构建
bash image.sh
| 选项 | 说明 |
|---|---|
1 | 确认当前配置,编译源码、构建并推送全部 API 镜像 |
2 | 修改镜像仓库,例如 registry.example.com/bbc |
3 | 修改镜像版本,例如 8.0.1 |
0 | 退出脚本 |

按照对应的选项进行操作
最终生成的镜像格式为 ${镜像仓库}/${服务名称}:${镜像版本},例如:
registry.example.com/bbc/base-api:8.0.1
1. 下载源码
# 下载 b2b2c 源码
git clone https://codeup.aliyun.com/shoptnt/product/bbc/cluster/api.git
2. 构建镜像
进入源码目录并运行镜像构建脚本:
# 进入源码目录
cd api
# 执行镜像构建
bash image.sh
| 选项 | 说明 |
|---|---|
1 | 确认当前配置,编译源码、构建并推送全部 API 镜像 |
2 | 修改镜像仓库,例如 registry.example.com/bbc |
3 | 修改镜像版本,例如 8.0.1 |
0 | 退出脚本 |

按照对应的选项进行操作
最终生成的镜像格式为 ${镜像仓库}/${服务名称}:${镜像版本},例如:
registry.example.com/bbc/base-api:8.0.1
1. 下载源码
# 下载 s2b2c 源码
git clone https://codeup.aliyun.com/shoptnt/product/sbc/cluster/api.git
2. 构建镜像
进入源码目录并运行镜像构建脚本:
# 进入源码目录
cd api
# 执行镜像构建
bash image.sh
| 选项 | 说明 |
|---|---|
1 | 确认当前配置,编译源码、构建并推送全部 API 镜像 |
2 | 修改镜像仓库,例如 registry.example.com/bbc |
3 | 修改镜像版本,例如 8.0.1 |
0 | 退出脚本 |

按照对应的选项进行操作
最终生成的镜像格式为 ${镜像仓库}/${服务名称}:${镜像版本},例如:
registry.example.com/sbc/base-api:8.0.1
四、脚本快捷操作
除交互菜单外,image.sh 还支持直接通过命令完成构建和推送:
| 命令 | 说明 |
|---|---|
bash image.sh build [服务名...] | 构建镜像并加载到本机 Docker,不推送 |
bash image.sh push [服务名...] | 推送本机已有镜像,不重新构建 |
bash image.sh build-push [服务名...] | 编译源码、构建镜像并直接推送 |
命令后不填写服务名时,默认处理全部服务;填写服务名时,可以只处理一个或多个指定服务。例如:
# 构建并推送全部服务镜像
bash image.sh build-push
# 只构建 base-api,不推送
bash image.sh build base-api
# 构建并推送多个指定服务
bash image.sh build-push base-api buyer-api seller-api
五、验证镜像
在部署服务器拉取其中一个镜像,确认仓库地址、权限和版本正确:
docker pull registry.example.com/shoptnt/base-api:8.0.1
docker image inspect registry.example.com/shoptnt/base-api:8.0.1