分享|五分钟快速学会 ThingsBoard 打包镜像和 Docker 部署
为了更方便地部署和运行 ThingsBoard,我们可以使用 Docker 技术将其打包成镜像,并通过 Docker 容器进行快速部署。

ThingsBoard 是一个强大的开源平台,通过其强大的功能和易用性,为用户提供了便捷的设备管理、数据可视化和规则引擎等服务。为了更方便地部署和运行 ThingsBoard,我们可以使用 Docker 技术将其打包成镜像,并通过 Docker 容器进行快速部署。

准备工作

编译

在前面的博客中详细介绍了如何进行编译,本篇博客需要确保您的系统已经安装了 Docker 和 Docker Compose。如果尚未安装,您可以通过官方网站获取安装说明。

  • 在进行镜像打包时需要在命令行添加-Ddockerfile.skip=false

    mvn clean install -DskipTests -Ddockerfile.skip=false
    
  • 或者可以修改msa目录下的pom.xml,查找dockerfile.skip,并修改为false

    截屏2023-12-15 09.20.54.png

  • 编译成功可以看到BUILD SUCCESS,如下图所示

    截屏2023-12-15 09.22.46.png

  • 此时在终端输入docker images,查看已经生成的镜像

    截屏2023-12-14 17.15.03.png

部署

在微服务启动前,首先修改相关配置

  • 修改.env

    截屏2023-12-14 16.50.43.png

  • 根据.env中选择的缓存和数据库,修改对应.env

    postgres.env

    截屏2023-12-14 16.51.35.png

  • 修改docker-compose

    注释掉不用的协议

    截屏2023-12-14 17.00.51.png

    修改容器中数据库配置

    截屏2023-12-14 16.59.00.png

    修改镜像

    截屏2023-12-14 17.01.30.png

启动

ThingsBoard 微服务在 Docker 化环境中运行。在开始之前,请确保您的系统中已安装Docker CE和Docker Compose。

  • 执行以下命令为服务创建日志文件夹,并将这些文件夹的 chown 给 docker 容器用户。为了能够更改用户,使用chown命令,这需要 sudo 权限(脚本将请求 sudo 访问的密码):

    ./docker-create-log-folders.sh
    
  • 执行以下命令来运行安装:

    --loadDemo- 可选参数。是否加载额外的演示数据

     ./docker-install-tb.sh --loadDemo
    

    截屏2023-12-15 10.06.49.png

  • 执行以下命令启动服务:

    一段时间后,所有服务都将成功启动,可以在浏览器中打开http://{your-host-ip}

    ./docker-start-services.sh
    

    截屏2023-12-14 17.47.36.png

  • 如果出现任何问题,您可以检查服务日志中是否有错误。例如,要查看 ThingsBoard 节点日志,请执行以下命令:

    $ docker-compose logs -f tb-core1 tb-core2 tb-rule-engine1 tb-rule-engine2 tb-mqtt-transport1 tb-mqtt-transport2
    

    截屏2023-12-14 17.16.59.png

    或者用来docker-compose ps查看所有容器的状态。用docker-compose logs --f检查所有正在运行的服务的日志。

  • 执行以下命令停止服务:

    ./docker-stop-services.sh
    

    截屏2023-12-14 17.17.48.png

  • 执行以下命令来停止并完全删除已部署的 docker 容器:

    ./docker-remove-services.sh
    

    截屏2023-12-15 10.06.12.png

  • 执行以下命令来更新特定或所有服务(拉取较新的 docker 映像并重建容器):

    [SERVICE...]- 要更新的服务列表(在 docker-compose 配置中定义)。如果未指定,所有服务都将更新

    $ ./docker-update-service.sh [SERVICE...]
    

验证

访问部署服务器

端口默认为80可以省略

截屏2023-12-14 16.49.26.png 截屏2023-12-14 17.47.47.png

查看此时docker中运行的容器docker ps

截屏2023-12-14 16.49.08.png

常见问题FAQ

执行./docker-install-tb.sh时相关日志权限问题

  • Error changing permissions of ‘/var/lib/postgresql/data’: Permission denied

    • 此问题可对postgres日志及挂载目录使用chmod 777进行解决。或是在docker-compose.postgres.yml中添加volumes挂载。

    截屏2023-12-15 10.36.03.png

  • Error opening log file ‘/var/log/thingsboard/tb-core1-gc.log

    若遇到此报错问题,可能是因为在未授予配置文件权限的情况下进行了一次启动。这时已经生成了挂载文件,即使再次对配置文件赋予权限,仍然会导致上述报错的出现。

    • 对日志目录和挂载目录重新赋权chown -R 799:799 ./tb-node/log

关于亿琪软件

亿琪软件

上海亿琪软件有限公司成立于 2016 年,专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。

2023 年,公司发布“YiFUSION |工业边缘智能融合一体机”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。

2022 年,公司推出 “YiCLOUD |亿琪云”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。

关注我们

公司公众号中文社区公众号
yiqisoftedgexfoundry

联系我们--商业服务

  • 网站:http://yiqisoft.cn
  • 邮件:support@yiqisoft.cn
  • 电话:021-68863086
  • 手机:186-1666-9123
分享|五分钟快速学会 ThingsBoard 对接物联网网关
本文将介绍如何将物联网网关与ThingsBoard集成