Dockerized ThingsBoard + dockerized PostgreSQL - PullRequest
0 голосов
/ 17 июня 2020

Я запускаю контейнер с 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 возвращает ошибку:

enter image description here

Я ожидаю, что ThingsBoard сам создаст таблицы в базе данных thingsboard, но кажется, что это не подходит. Есть предположения о возможной причине этой ошибки? Спасибо.

1 Ответ

0 голосов
/ 17 июня 2020

Кажется, проблема связана с томами: mytb-data и mytb-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
...