产品定价 立即试用
专业版
从旧版Docker部署文件迁移
入门 文档 指南 安装 架构 API 常见问题
目录

从旧版Docker部署文件迁移

本指南将帮助您从使用已弃用镜像thingsboard/tb-pe和卷绑定而非本地卷的旧版Docker部署文件迁移。 本指南适用于ThingsBoard PE单机安装。

为什么更改了部署文件?

  • 旧文件使用了已弃用的镜像thingsboard/tb-pe,不支持arm64架构。
  • 数据通过具有特定所有权的本地文件夹持久化,而非使用Docker卷机制。

谁需要本指南?

拥有如下或类似docker compose文件的用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
version: '3.0'
services:
  mytbpe:
    restart: always
    image: "thingsboard/tb-pe:4.3.0.1PE"
    ports:
      - "8080:8080"
      - "1883:1883"
      - "7070:7070"
      - "5683-5688:5683-5688/udp"
    environment:
      TB_QUEUE_TYPE: in-memory
      SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/thingsboard
      TB_LICENSE_SECRET: PUT_YOUR_LICENSE_SECRET_HERE
      TB_LICENSE_INSTANCE_DATA_FILE: /data/license.data
    volumes:
      - mytbpe-data:/data
      - mytbpe-logs:/var/log/thingsboard
  postgres:
    restart: always
    image: "postgres:15"
    ports:
    - "5432"
    environment:
      POSTGRES_DB: thingsboard
      POSTGRES_PASSWORD: postgres
    volumes:
      - mytbpe-data-db:/var/lib/postgresql/data
volumes:
  mytbpe-data:
    external: true
  mytbpe-logs:
    external: true
  mytbpe-data-db:
    external: true

将Postgres数据迁移到Docker卷

创建命名Docker卷:

1
docker volume create --name tb-postgres-data

运行容器并挂载卷,将数据从文件夹复制到新创建的卷中:

1
docker run --rm -v mytbpe-data-db:/source -v tb-postgres-data:/destination alpine sh -c "cp -rp /source/* /destination/"
文档信息图标

请注意,之前docker compose中使用的是PostgreSQL 15镜像,现已替换为PostgreSQL 16。 要启动Postgres DB容器,您需要在新部署文件中使用postgres:15镜像,或升级数据库文件。

将许可证数据迁移到Docker卷

创建命名Docker卷:

1
docker volume create --name tb-pe-license-data

运行容器并挂载卷,将数据从文件夹复制到新创建的卷中:

1
docker run --rm -v mytbpe-data:/source -v tb-pe-license-data:/destination alpine sh -c "cp -a /source/license.data /destination/ && chown 799:799 /destination/license.data"

迁移到新部署文件

使用文本编辑器打开docker-compose.yml文件:

1
notepad docker-compose.yml

复制当前Docker Compose清单,用当前清单替换旧的清单。如需要,请替换Postgres Docker镜像。

文档信息图标

请确保thingsboard/tb-pe-nodethingsboard/tb-web-report的标签与之前的清单一致。

请勿忘记在环境变量部分替换许可证密钥。

数据迁移到Docker卷且docker-compose.yml文件结构与安装示例一致后,即可继续ThingsBoard的升级