update: 镜像改为单仓库 iotlcm/iotlcm,tag 为「服务名-版本」

阿里云 ACR 的仓库地址结构是 <Registry>/<命名空间>/<镜像仓库>:<tag>,
此前每个服务单独建了一个镜像仓库(iotlcm/mysql、iotlcm/iotlcm-admin-svr …),
现按要求统一到同一个镜像仓库 iotlcm/iotlcm,服务名放进 tag。

镜像地址变化:
  crpi-.../iotlcm/iotlcm-admin-svr:v1.0.4
  → crpi-.../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4

17 个镜像(12 业务 + 5 基础组件)已重新打 tag 推送到单仓库并验证。
已验证 docker compose pull 全部拉取成功、14 个默认服务正常启动、
admin-svr/openapi/sms 健康检查 200、数据库 95 表。

Jenkins 流水线同步改为推送到 iotlcm/iotlcm,tag 自动拼接服务名。
This commit is contained in:
MiFaZhan
2026-10-30 09:12:45 +08:00
parent 8543038dad
commit 247e5b2a60
2 changed files with 31 additions and 18 deletions
+14 -1
View File
@@ -43,7 +43,20 @@ docker compose --profile with-nginx up -d # 自带反向代理
## 镜像版本 ## 镜像版本
当前部署编排固定使用业务镜像 `v1.0.4`;`iotlcm-app-server` 与 `iotlcm-app-web` 固定为 `v1.0.2`。升级时请在 `docker-compose.yml` 中同步更新对应 tag,不要改用 `latest`。 所有镜像(含基础组件)都在**同一个镜像仓库** `<镜像仓库>/iotlcm/iotlcm` 下,靠 tag 区分服务与版本:
```text
crpi-.../iotlcm/iotlcm:mysql-8.0
crpi-.../iotlcm/iotlcm:redis-7.2
crpi-.../iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4
crpi-.../iotlcm/iotlcm:iotlcm-app-server-v1.0.2
```
tag 格式统一为 **`<服务名>-<版本>`**。
当前业务版本:大部分服务为 `v1.0.4`,`iotlcm-app-server` / `iotlcm-app-web` 为 `v1.0.2`(源仓最新 tag 就是 v1.0.2)。
升级时在 `docker-compose.yml` 中同步更新 tag 的版本部分,不要改用 `latest`。
## 部署内容 ## 部署内容
+17 -17
View File
@@ -18,7 +18,7 @@ services:
# ---------------- 基础组件 ---------------- # ---------------- 基础组件 ----------------
mysql: mysql:
# 基础组件统走同一镜像仓库(`<REGISTRY>/iotlcm/`),版本在此固定 # 基础组件统走同一镜像仓库(`<REGISTRY>/iotlcm/`),版本在此固定
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/mysql:8.0' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:mysql-8.0'
container_name: iotlcm-mysql container_name: iotlcm-mysql
restart: always restart: always
ports: ports:
@@ -45,7 +45,7 @@ services:
start_period: 40s start_period: 40s
redis: redis:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/redis:7.2' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:redis-7.2'
container_name: iotlcm-redis container_name: iotlcm-redis
restart: always restart: always
ports: ports:
@@ -69,7 +69,7 @@ services:
retries: 5 retries: 5
rabbitmq: rabbitmq:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/rabbitmq:4.3.5-management' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:rabbitmq-4.3.5-management'
container_name: iotlcm-rabbitmq container_name: iotlcm-rabbitmq
hostname: rabbitmq hostname: rabbitmq
restart: always restart: always
@@ -92,7 +92,7 @@ services:
start_period: 30s start_period: 30s
consul: consul:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/consul:1.22' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:consul-1.22'
container_name: iotlcm-consul container_name: iotlcm-consul
restart: always restart: always
ports: ports:
@@ -118,7 +118,7 @@ services:
# ---------------- 业务服务 ---------------- # ---------------- 业务服务 ----------------
admin-svr: admin-svr:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-svr:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-admin-svr-v1.0.4'
container_name: iotlcm-admin-svr container_name: iotlcm-admin-svr
restart: always restart: always
ports: ports:
@@ -141,7 +141,7 @@ services:
condition: service_healthy condition: service_healthy
admin-ui: admin-ui:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-ui:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-admin-ui-v1.0.4'
container_name: iotlcm-admin-ui container_name: iotlcm-admin-ui
restart: always restart: always
ports: ports:
@@ -158,7 +158,7 @@ services:
- admin-svr - admin-svr
openapi: openapi:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-openapi:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-openapi-v1.0.4'
container_name: iotlcm-openapi container_name: iotlcm-openapi
restart: always restart: always
ports: ports:
@@ -179,7 +179,7 @@ services:
condition: service_healthy condition: service_healthy
upstream-chan: upstream-chan:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-chan:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-upstream-chan-v1.0.4'
container_name: iotlcm-upstream-chan container_name: iotlcm-upstream-chan
restart: always restart: always
ports: ports:
@@ -203,7 +203,7 @@ services:
condition: service_started condition: service_started
upstream-proxy: upstream-proxy:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-proxy:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-upstream-proxy-v1.0.4'
container_name: iotlcm-upstream-proxy container_name: iotlcm-upstream-proxy
restart: always restart: always
ports: ports:
@@ -227,7 +227,7 @@ services:
condition: service_started condition: service_started
worker-svr: worker-svr:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-worker-svr:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-worker-svr-v1.0.4'
container_name: iotlcm-worker-svr container_name: iotlcm-worker-svr
restart: always restart: always
environment: environment:
@@ -249,7 +249,7 @@ services:
condition: service_healthy condition: service_healthy
app-server: app-server:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-server:v1.0.2' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-app-server-v1.0.2'
container_name: iotlcm-app-server container_name: iotlcm-app-server
restart: always restart: always
ports: ports:
@@ -270,7 +270,7 @@ services:
condition: service_healthy condition: service_healthy
app-web: app-web:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-web:v1.0.2' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-app-web-v1.0.2'
container_name: iotlcm-app-web container_name: iotlcm-app-web
restart: always restart: always
ports: ports:
@@ -283,7 +283,7 @@ services:
- iotlcm-network - iotlcm-network
sms: sms:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-sms:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-sms-v1.0.4'
container_name: iotlcm-sms container_name: iotlcm-sms
hostname: iotlcm-sms hostname: iotlcm-sms
restart: always restart: always
@@ -311,7 +311,7 @@ services:
- iotlcm-network - iotlcm-network
bot: bot:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-bot:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-bot-v1.0.4'
container_name: iotlcm-bot container_name: iotlcm-bot
restart: unless-stopped restart: unless-stopped
environment: environment:
@@ -327,7 +327,7 @@ services:
- with-bot - with-bot
docs: docs:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-docs:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-docs-v1.0.4'
container_name: iotlcm-docs container_name: iotlcm-docs
restart: unless-stopped restart: unless-stopped
ports: ports:
@@ -343,7 +343,7 @@ services:
# 启用后 upstream-chan 的 sim_yd_mock_v5.url 指向 http://onelink-mock:8080/v5/ # 启用后 upstream-chan 的 sim_yd_mock_v5.url 指向 http://onelink-mock:8080/v5/
# (config/upstream-chan 已预置该地址) # (config/upstream-chan 已预置该地址)
onelink-mock: onelink-mock:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-onelink-mock:v1.0.4' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:iotlcm-onelink-mock-v1.0.4'
container_name: iotlcm-onelink-mock container_name: iotlcm-onelink-mock
restart: unless-stopped restart: unless-stopped
ports: ports:
@@ -370,7 +370,7 @@ services:
# 若宿主机已有 nginx / 面板,可不启动本容器, # 若宿主机已有 nginx / 面板,可不启动本容器,
# 参考 config/nginx/iotlcm.conf 把 location 段落到宿主机配置。 # 参考 config/nginx/iotlcm.conf 把 location 段落到宿主机配置。
nginx: nginx:
image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/nginx:1.30' image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm:nginx-1.30'
container_name: iotlcm-nginx container_name: iotlcm-nginx
restart: always restart: always
ports: ports: