555 lines
13 KiB
Markdown
555 lines
13 KiB
Markdown
|
|
# ThingsBoard 所有镜像打包命令
|
|||
|
|
|
|||
|
|
## 位置
|
|||
|
|
项目根目录:`/Users/sunpeng/workspace/things/thingsboard/`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚠️ 重要:先拉取基础镜像
|
|||
|
|
|
|||
|
|
所有 ThingsBoard 镜像都依赖以下**基础镜像**,需要先拉取:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 拉取 Java 服务基础镜像(tb-node、传输服务等需要)
|
|||
|
|
docker pull thingsboard/openjdk17:bookworm-slim
|
|||
|
|
|
|||
|
|
# 拉取 Node.js 服务基础镜像(tb-web-ui、tb-js-executor 需要)
|
|||
|
|
docker pull thingsboard/node:22.18.0-bookworm-slim
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**如果网络有问题**,可以尝试:
|
|||
|
|
```bash
|
|||
|
|
# 使用国内镜像源
|
|||
|
|
docker pull docker.xuanyuan.me/library/debian:bookworm-slim
|
|||
|
|
|
|||
|
|
# 或者使用阿里云镜像
|
|||
|
|
docker pull registry.cn-hangzhou.aliyuncs.com/library/debian:bookworm-slim
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**:这些基础镜像由 ThingsBoard 官方在 Docker Hub 维护,包含预装的 OpenJDK 17 和 Node.js 22.18.0。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 单个镜像打包命令
|
|||
|
|
|
|||
|
|
### 1. tb-node 镜像(核心服务 + 规则引擎)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/tb-node --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `application` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-node`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 2. tb-mqtt-transport 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport/mqtt --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `transport/mqtt` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-mqtt-transport`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 3. tb-http-transport 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport/http --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `transport/http` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-http-transport`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 4. tb-coap-transport 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport/coap --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `transport/coap` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-coap-transport`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 5. tb-lwm2m-transport 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport/lwm2m --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `transport/lwm2m` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-lwm2m-transport`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 6. tb-snmp-transport 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport/snmp --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `transport/snmp` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-snmp-transport`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 7. tb-web-ui 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/web-ui --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `ui-ngx` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-web-ui`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 8. tb-js-executor 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/js-executor --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**: 直接复制源码,无需 DEB 包
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-js-executor`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 9. tb-vc-executor 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/vc-executor-docker --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `msa/vc-executor` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-vc-executor`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 10. tb-edqs 镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/edqs --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**依赖**: `edqs` 模块(自动构建)
|
|||
|
|
|
|||
|
|
**验证**: `docker images | grep tb-edqs`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 批量构建命令
|
|||
|
|
|
|||
|
|
### 构建所有传输服务(5个)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa/transport --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这会构建:
|
|||
|
|
- tb-mqtt-transport
|
|||
|
|
- tb-http-transport
|
|||
|
|
- tb-coap-transport
|
|||
|
|
- tb-lwm2m-transport
|
|||
|
|
- tb-snmp-transport
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
### 构建所有 ThingsBoard 镜像(10个)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false --projects msa --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者指定所有模块:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn clean install -DskipTests -Ddockerfile.skip=false \
|
|||
|
|
--projects msa/tb-node,msa/transport,msa/web-ui,msa/js-executor,msa/vc-executor-docker,msa/edqs \
|
|||
|
|
--also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 命令参数说明
|
|||
|
|
|
|||
|
|
### `mvn clean install`
|
|||
|
|
- **clean**: 清理之前的构建产物(删除 `target/` 目录)
|
|||
|
|
- **install**: 编译、打包并安装到本地 Maven 仓库(`~/.m2/repository`)
|
|||
|
|
|
|||
|
|
### `-DskipTests`
|
|||
|
|
- **作用**: 跳过运行测试用例
|
|||
|
|
- **原因**: 测试耗时长,打包镜像时通常不需要
|
|||
|
|
|
|||
|
|
### `-Ddockerfile.skip=false`
|
|||
|
|
- **作用**: 启用 Docker 镜像构建
|
|||
|
|
- **说明**: 默认 `dockerfile.skip=true`(跳过 Docker 构建),需要设置为 `false` 才会构建镜像
|
|||
|
|
|
|||
|
|
### `--projects <模块路径>`
|
|||
|
|
- **作用**: 只构建指定的模块
|
|||
|
|
- **说明**: 如果不指定,会构建整个项目的所有模块
|
|||
|
|
|
|||
|
|
### `--also-make`
|
|||
|
|
- **作用**: 自动构建依赖的模块
|
|||
|
|
- **说明**: 例如 `msa/tb-node` 依赖 `application` 模块,会自动先构建 `application`,再构建 `msa/tb-node`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 验证所有镜像
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker images | grep thingsboard
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
应该看到所有镜像:
|
|||
|
|
```
|
|||
|
|
thingsboard/tb-node 4.2.1 ...
|
|||
|
|
thingsboard/tb-mqtt-transport 4.2.1 ...
|
|||
|
|
thingsboard/tb-http-transport 4.2.1 ...
|
|||
|
|
thingsboard/tb-coap-transport 4.2.1 ...
|
|||
|
|
thingsboard/tb-lwm2m-transport 4.2.1 ...
|
|||
|
|
thingsboard/tb-snmp-transport 4.2.1 ...
|
|||
|
|
thingsboard/tb-web-ui 4.2.1 ...
|
|||
|
|
thingsboard/tb-js-executor 4.2.1 ...
|
|||
|
|
thingsboard/tb-vc-executor 4.2.1 ...
|
|||
|
|
thingsboard/tb-edqs 4.2.1 ...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Mac M1 芯片解决方案
|
|||
|
|
|
|||
|
|
### 问题
|
|||
|
|
`dockerfile-maven-plugin` 在 Mac M1 上有架构兼容性问题,会报错:
|
|||
|
|
```
|
|||
|
|
UnsatisfiedLinkError: ... missing compatible architecture (have 'i386,x86_64', need 'arm64e' or 'arm64')
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**原因**: `dockerfile-maven-plugin` 1.4.13 版本使用的 FFI 库不支持 ARM64 架构。
|
|||
|
|
|
|||
|
|
### 解决方案:两阶段构建(推荐)
|
|||
|
|
|
|||
|
|
#### 步骤1:构建代码和 DEB 包(跳过 Docker)
|
|||
|
|
```bash
|
|||
|
|
# 在项目根目录
|
|||
|
|
mvn clean install -DskipTests --projects msa/tb-node --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这会:
|
|||
|
|
- ✅ 编译代码
|
|||
|
|
- ✅ 生成 DEB 包
|
|||
|
|
- ✅ 复制 Dockerfile 和启动脚本到 `msa/tb-node/target/`
|
|||
|
|
- ❌ 跳过 Docker 镜像构建(避免插件错误)
|
|||
|
|
|
|||
|
|
#### 步骤2:手动构建 Docker 镜像
|
|||
|
|
```bash
|
|||
|
|
# 进入构建目录
|
|||
|
|
cd msa/tb-node/target
|
|||
|
|
|
|||
|
|
# 查看版本号(如果需要)
|
|||
|
|
grep -A 1 "version" ../../pom.xml | head -1
|
|||
|
|
|
|||
|
|
# 手动执行 docker build(替换 4.2.1 为实际版本号)
|
|||
|
|
docker build -t thingsboard/tb-node:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**说明**:
|
|||
|
|
- Dockerfile 已经复制到 `target/` 目录
|
|||
|
|
- DEB 包也在 `target/` 目录
|
|||
|
|
- 启动脚本也在 `target/` 目录
|
|||
|
|
- 直接 `docker build` 即可
|
|||
|
|
|
|||
|
|
### 获取版本号
|
|||
|
|
```bash
|
|||
|
|
# 方法1:查看根 pom.xml
|
|||
|
|
grep "<version>" pom.xml | head -1
|
|||
|
|
|
|||
|
|
# 方法2:查看构建后的目录名
|
|||
|
|
ls msa/tb-node/target/ | grep deb
|
|||
|
|
# 输出: thingsboard-4.2.1.deb (版本号是 4.2.1)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### 1. Mac M1 架构兼容性问题
|
|||
|
|
|
|||
|
|
**错误**: `UnsatisfiedLinkError: missing compatible architecture`
|
|||
|
|
|
|||
|
|
**解决**: 使用两阶段构建(见上面的"Mac M1 芯片解决方案")
|
|||
|
|
|
|||
|
|
### 2. Docker daemon 未运行
|
|||
|
|
|
|||
|
|
**错误**: `Cannot connect to the Docker daemon`
|
|||
|
|
|
|||
|
|
**解决**:
|
|||
|
|
```bash
|
|||
|
|
# 检查 Docker 状态
|
|||
|
|
docker ps
|
|||
|
|
|
|||
|
|
# 如果未运行,启动 Docker Desktop(Mac)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 依赖模块未构建
|
|||
|
|
|
|||
|
|
**错误**: `Could not find artifact org.thingsboard:application:deb:4.2.1`
|
|||
|
|
|
|||
|
|
**解决**: 确保使用 `--also-make` 参数,或者先手动构建依赖:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 先构建 application 模块
|
|||
|
|
mvn clean install -DskipTests --projects application
|
|||
|
|
|
|||
|
|
# 再构建 tb-node
|
|||
|
|
mvn clean install -DskipTests --projects msa/tb-node
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 内存不足
|
|||
|
|
|
|||
|
|
**错误**: `java.lang.OutOfMemoryError`
|
|||
|
|
|
|||
|
|
**解决**: 增加 Maven 内存
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
MAVEN_OPTS="-Xmx2048m" mvn clean install -DskipTests --projects msa/tb-node --also-make
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Mac M1 完整构建命令
|
|||
|
|
|
|||
|
|
### 通用步骤(所有镜像都一样)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 步骤1:构建代码和依赖(项目根目录)
|
|||
|
|
mvn clean install -DskipTests --projects msa/<模块名> --also-make
|
|||
|
|
|
|||
|
|
# 步骤2:进入构建目录
|
|||
|
|
cd msa/<模块名>/target
|
|||
|
|
|
|||
|
|
# 步骤3:查看版本号(可选)
|
|||
|
|
ls *.deb # 查看 DEB 包名称,获取版本号
|
|||
|
|
|
|||
|
|
# 步骤4:手动构建镜像(替换 VERSION 为实际版本号)
|
|||
|
|
docker build -t thingsboard/<镜像名>:VERSION .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 具体示例
|
|||
|
|
|
|||
|
|
#### 1. tb-node 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/tb-node --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/tb-node/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-node:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 2. tb-mqtt-transport 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/transport/mqtt --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/transport/mqtt/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-mqtt-transport:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 3. tb-web-ui 镜像(特殊:pkg 在 Mac M1 会失败)
|
|||
|
|
|
|||
|
|
**问题**: `pkg` 命令会在 macOS M1 上失败(无法构建 Linux 二进制),但 Docker 只需要 `server.js` 源码。
|
|||
|
|
|
|||
|
|
**什么是 pkg?**
|
|||
|
|
- `pkg` 是一个 Node.js 工具,用于将整个 Node.js 应用打包成单个可执行文件
|
|||
|
|
- Docker 不需要这个可执行文件,只需要编译后的 `server.js` 源码
|
|||
|
|
|
|||
|
|
**为什么慢?**
|
|||
|
|
- `pkg` 需要从 GitHub 下载 Node.js 二进制文件(大小约 30-40MB)
|
|||
|
|
- 如果网络慢或 GitHub 连接不稳定,下载会很慢或失败
|
|||
|
|
|
|||
|
|
**解决方案:手动编译 TypeScript**
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 步骤1:构建 ui-ngx 依赖(项目根目录)
|
|||
|
|
mvn clean install -DskipTests --projects ui-ngx
|
|||
|
|
|
|||
|
|
# 步骤2:进入 web-ui 目录
|
|||
|
|
cd msa/web-ui
|
|||
|
|
|
|||
|
|
# 步骤3:安装依赖
|
|||
|
|
yarn install
|
|||
|
|
|
|||
|
|
# 步骤4:只编译 TypeScript(跳过 pkg)
|
|||
|
|
npx tsc
|
|||
|
|
|
|||
|
|
# 步骤5:确认编译成功
|
|||
|
|
ls target/src/server.js
|
|||
|
|
|
|||
|
|
# 步骤6:返回根目录继续 Maven 构建(但跳过 pkg)
|
|||
|
|
cd ../..
|
|||
|
|
|
|||
|
|
# 步骤7:用 Maven 继续构建(会跳过 pkg,但会失败,不影响)
|
|||
|
|
# 或者直接手动复制文件并构建 Docker 镜像
|
|||
|
|
|
|||
|
|
# 步骤8:手动复制必要文件到 target/src(如果 Maven 没有自动复制)
|
|||
|
|
# msa/web-ui/target/ 目录应该有 Dockerfile
|
|||
|
|
|
|||
|
|
# 步骤9:进入 target 构建 Docker 镜像
|
|||
|
|
cd msa/web-ui/target
|
|||
|
|
docker build -t thingsboard/tb-web-ui:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**或者:先让 pkg 失败,然后手动修复**
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 步骤1:让 Maven 构建失败(pkg 会失败,但 tsc 已经成功)
|
|||
|
|
mvn clean install -DskipTests --projects msa/web-ui --also-make || true
|
|||
|
|
|
|||
|
|
# 步骤2:检查 server.js 是否已生成
|
|||
|
|
ls msa/web-ui/target/src/server.js
|
|||
|
|
|
|||
|
|
# 步骤3:如果已生成,直接构建 Docker 镜像
|
|||
|
|
cd msa/web-ui/target
|
|||
|
|
docker build -t thingsboard/tb-web-ui:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 4. tb-js-executor 镜像(特殊:pkg 在 Mac M1 会失败)
|
|||
|
|
|
|||
|
|
**问题**: `pkg` 命令会在 macOS M1 上失败(无法构建 Linux 二进制),但 Docker 只需要 `server.js` 源码。
|
|||
|
|
|
|||
|
|
**什么是 pkg?**
|
|||
|
|
- `pkg` 是一个 Node.js 工具,用于将整个 Node.js 应用打包成单个可执行文件(类似 Java 的 jar)
|
|||
|
|
- 例如:`pkg -t node22-linux-x64` 会生成一个 Linux 可执行文件
|
|||
|
|
- **但 Docker 不需要这个可执行文件!** Docker 只需要编译后的 `server.js` 源码,然后在容器内用 `node server.js` 运行
|
|||
|
|
|
|||
|
|
**为什么慢?**
|
|||
|
|
- `pkg` 需要从 GitHub 下载 Node.js 二进制文件(大小约 30-40MB)
|
|||
|
|
- 命令会显示:`Fetching base Node.js binaries to PKG_CACHE_PATH`
|
|||
|
|
- 如果网络慢或 GitHub 连接不稳定,下载会很慢或失败
|
|||
|
|
- 这些二进制文件存在 `~/.pkg-cache/` 目录,但首次下载很慢
|
|||
|
|
|
|||
|
|
**解决方案:手动编译 TypeScript**
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 步骤1:进入 js-executor 目录
|
|||
|
|
cd msa/js-executor
|
|||
|
|
|
|||
|
|
# 步骤2:安装依赖
|
|||
|
|
yarn install
|
|||
|
|
|
|||
|
|
# 步骤3:只编译 TypeScript(跳过 pkg)
|
|||
|
|
npx tsc
|
|||
|
|
|
|||
|
|
# 步骤4:确认编译成功
|
|||
|
|
ls target/src/server.js
|
|||
|
|
|
|||
|
|
# 步骤5:让 Maven 继续构建(pkg 会失败,但会生成 package/linux/conf 等必要文件)
|
|||
|
|
# ⚠️ 注意:这里不加 || true,因为 Maven 会失败,但已经生成了必要文件
|
|||
|
|
cd ../..
|
|||
|
|
mvn clean install -DskipTests --projects msa/js-executor --also-make
|
|||
|
|
|
|||
|
|
# 即使看到错误信息,docker 镜像构建所需文件已经生成,继续步骤6
|
|||
|
|
|
|||
|
|
# 步骤6:进入 target 构建 Docker 镜像
|
|||
|
|
cd msa/js-executor/target
|
|||
|
|
docker build -t thingsboard/tb-js-executor:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 5. tb-http-transport 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/transport/http --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/transport/http/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-http-transport:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 6. tb-coap-transport 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/transport/coap --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/transport/coap/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-coap-transport:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 7. tb-lwm2m-transport 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/transport/lwm2m --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/transport/lwm2m/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-lwm2m-transport:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 8. tb-snmp-transport 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/transport/snmp --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/transport/snmp/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-snmp-transport:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 9. tb-vc-executor 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/vc-executor-docker --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/vc-executor-docker/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-vc-executor:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 10. tb-edqs 镜像
|
|||
|
|
```bash
|
|||
|
|
# 步骤1
|
|||
|
|
mvn clean install -DskipTests --projects msa/edqs --also-make
|
|||
|
|
|
|||
|
|
# 步骤2
|
|||
|
|
cd msa/edqs/target
|
|||
|
|
|
|||
|
|
# 步骤3
|
|||
|
|
docker build -t thingsboard/tb-edqs:4.2.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
完成!
|
|||
|
|
|
|||
|
|
|