diff --git a/README.md b/README.md index e6e85a0..0cb0539 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,10 @@ docker compose --profile with-nginx up -d # 自带反向代理 多个 profile 可组合:`--profile with-mock --profile with-nginx up -d` +## 镜像版本 + +当前部署编排固定使用业务镜像 `v1.0.4`;`iotlcm-app-server` 与 `iotlcm-app-web` 固定为 `v1.0.2`。升级时请在 `docker-compose.yml` 中同步更新对应 tag,不要改用 `latest`。 + ## 部署内容 | 类别 | 服务 | diff --git a/docker-compose.yml b/docker-compose.yml index 214ccc0..e9529c8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,9 +4,8 @@ name: iotlcm # IotLCM 单机部署编排 # # 快速开始: -# 1. cp .env.example .env # 填写镜像仓库与各项口令 -# 2. cp -r config.example config # 逐份填写配置(见各文件内注释) -# 3. docker compose up -d +# 1. docker compose up -d +# 配置文件和初始口令均已内置;正式部署前按 README.md 修改默认口令。 # # 首次启动会自动建库并导入 schema(见 schema/README.md)。 # @@ -30,7 +29,7 @@ services: TZ: 'Asia/Shanghai' volumes: - ./data/mysql:/var/lib/mysql - # 仅在 data/mysql 为空(首次启动)时执行,按文件名顺序 + # 仅在 data/mysql 为空(首次启动)时执行 schema/init.sql - ./schema:/docker-entrypoint-initdb.d:ro command: - --character-set-server=utf8mb4 @@ -39,7 +38,7 @@ services: networks: - iotlcm-network healthcheck: - test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-piotlcm_root_2026"] + test: ["CMD-SHELL", "MYSQL_PWD=\"$$MYSQL_ROOT_PASSWORD\" mysqladmin ping -h 127.0.0.1 -u root --silent"] interval: 10s timeout: 5s retries: 10 @@ -119,7 +118,7 @@ services: # ---------------- 业务服务 ---------------- admin-svr: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-svr:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-svr:v1.0.4' container_name: iotlcm-admin-svr restart: always ports: @@ -142,7 +141,7 @@ services: condition: service_healthy admin-ui: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-ui:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-admin-ui:v1.0.4' container_name: iotlcm-admin-ui restart: always ports: @@ -159,7 +158,7 @@ services: - admin-svr openapi: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-openapi:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-openapi:v1.0.4' container_name: iotlcm-openapi restart: always ports: @@ -180,7 +179,7 @@ services: condition: service_healthy upstream-chan: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-chan:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-chan:v1.0.4' container_name: iotlcm-upstream-chan restart: always ports: @@ -204,7 +203,7 @@ services: condition: service_started upstream-proxy: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-proxy:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-upstream-proxy:v1.0.4' container_name: iotlcm-upstream-proxy restart: always ports: @@ -228,7 +227,7 @@ services: condition: service_started worker-svr: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-worker-svr:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-worker-svr:v1.0.4' container_name: iotlcm-worker-svr restart: always environment: @@ -250,7 +249,7 @@ services: condition: service_healthy app-server: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-server:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-server:v1.0.2' container_name: iotlcm-app-server restart: always ports: @@ -271,7 +270,7 @@ services: condition: service_healthy app-web: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-web:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-app-web:v1.0.2' container_name: iotlcm-app-web restart: always ports: @@ -284,7 +283,7 @@ services: - iotlcm-network sms: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-sms:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-sms:v1.0.4' container_name: iotlcm-sms hostname: iotlcm-sms restart: always @@ -312,7 +311,7 @@ services: - iotlcm-network bot: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-bot:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-bot:v1.0.4' container_name: iotlcm-bot restart: unless-stopped environment: @@ -328,7 +327,7 @@ services: - with-bot docs: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-docs:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-docs:v1.0.4' container_name: iotlcm-docs restart: unless-stopped ports: @@ -342,9 +341,9 @@ services: # # 启用:docker compose --profile with-mock up -d # 启用后 upstream-chan 的 sim_yd_mock_v5.url 指向 http://onelink-mock:8080/v5/ - # (config.example/upstream-chan 已预置该地址) + # (config/upstream-chan 已预置该地址) onelink-mock: - image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-onelink-mock:latest' + image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/iotlcm-onelink-mock:v1.0.4' container_name: iotlcm-onelink-mock restart: unless-stopped ports: @@ -369,7 +368,7 @@ services: # ---------------- 可选:反向代理 ---------------- # 若宿主机已有 nginx / 面板,可不启动本容器, - # 参考 config.example/nginx/iotlcm.conf 把 location 段落到宿主机配置。 + # 参考 config/nginx/iotlcm.conf 把 location 段落到宿主机配置。 nginx: image: 'crpi-qflrqrxoohlkkvgc.cn-chengdu.personal.cr.aliyuncs.com/iotlcm/nginx:1.30' container_name: iotlcm-nginx