Dockerized ThingsBoard + Dockerized PostgreSQL

Dockerized ThingsBoard + dockerized PostgreSQL

我使用以下命令启动容器 运行 PostgreSQL:

docker run -p 5432:5432 -d -it -e POSTGRES_USER='postgres' -e POSTGRES_PASSWORD='postgres' -e POSTGRES_DB='thingsboard' --name postgres postgres

然后,我启动 ThingsBoard,提供一些环境变量以使用 PostgreSQL 数据库:

docker run -it -p 9090:9090 -p 1883:1883 -p 5683:5683/udp -v ~/.mytb-data:/data -v ~/.mytb-logs:/var/logs/thingsboard --name thingsboard --restart always -e SPRING_DATASOURCE_URL=jdbc:postgresql://<MY_LOCAL_IP>:5432/thingsboard -e SPRING_DATASOURCE_USERNAME=postgres -e SPRING_DATASOURCE_PASSWORD=postgres thingsboard/tb-postgres

其中 <MY_LOCAL_IP> 是我在本地网络上的 IP 地址。我检查了 PostgreSQL,它实际上绑定到 <MY_LOCAL_IP>:5432(通过 PGAdmin 验证)。 thingsboard容器returns出错:

我希望 ThingsBoard 本身能够在 thingsboard 数据库中创建表格,但它似乎并没有这样做。关于此错误的可能原因的任何猜测?谢谢。

好像是卷给的问题:mytb-datamytb-logs之前已经创建过,不是空的。只要我们使用 thingsboard 启动容器,容器就会工作:

docker run -it -p 9090:9090 -p 1883:1883 -p 5683:5683/udp --name thingsboard --restart always -e SPRING_DATASOURCE_URL=jdbc:postgresql://<MY_LOCAL_IP>:5432/thingsboard -e SPRING_DATASOURCE_USERNAME=postgres -e SPRING_DATASOURCE_PASSWORD=postgres thingsboard/tb-postgres