[英]How to docker-compose ThingsBoard + RabbitMQ?
按照ThingsBoard 的教程,他们似乎建议对 RabbitMQ 使用本地桌面安装,并使用一些引用它的变量运行 docker-compose。
我个人不喜欢直接在我的 PC 上安装此类应用程序,而是更喜欢它们的 docker 实例。
我希望尝试通过 Docker 同步我的 docker ThingsBoard 和 RabbitMQ。
这是我目前使用的 docker-compose.yml 文件:
version: '2.2'
services:
mytb:
privileged: true
restart: always
depends_on:
- rabbitmq
image: "thingsboard/tb-postgres"
ports:
- "9091:9090"
- "1883:1883"
- "7070:7070"
- "5683-5688:5683-5688/udp"
environment:
TB_QUEUE_TYPE: rabbitmq
TB_QUEUE_RABBIT_MQ_USERNAME: test
TB_QUEUE_RABBIT_MQ_PASSWORD: test123369
TB_QUEUE_RABBIT_MQ_HOST: localhost
TB_QUEUE_RABBIT_MQ_PORT: 5672
volumes:
- ./mytb-data:/data
- ./mytb-logs:/var/log/thingsboard
rabbitmq:
image: rabbitmq:3-management
environment:
# RABBITMQ_ERLANG_COOKIE: 'asdfjasifasjfawfjisfjasifjioasjfoiasj'
RABBITMQ_DEFAULT_USER: test
RABBITMQ_DEFAULT_PASS: test123369
volumes:
- ./rmq-test/db-data:/var/lib/rabbitmq
ports:
- 5672:5672
- 15672:15672
我不断让 ThigsBoard 服务器重新启动,错误提示它无法连接到 RabbitMQ。
我尝试更改行: TB_QUEUE_RABBIT_MQ_HOST: localhost
为TB_QUEUE_RABBIT_MQ_HOST: rabbitmq
或使用分配给 docker 容器的 ip 地址,但我不断在循环中收到此错误:
Creating mytb_mytb_1 ... done
Attaching to mytb_mytb_1
mytb_1 | mkdir: cannot create directory ‘/data/db’: Permission denied
mytb_1 | The files belonging to this database system will be owned by user "thingsboard".
mytb_1 | This user must also own the server process.
mytb_1 |
mytb_1 | The database cluster will be initialized with locale "C.UTF-8".
mytb_1 | The default database encoding has accordingly been set to "UTF8".
mytb_1 | The default text search configuration will be set to "english".
mytb_1 |
mytb_1 | Data page checksums are disabled.
mytb_1 |
mytb_1 | creating directory /data/db ... initdb: error: could not create directory "/data/db": Permission denied
mytb_1 | pg_ctl: database system initialization failed
mytb_1 | psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
mytb_1 | Is the server running locally and accepting connections on that socket?
mytb_1 | psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
mytb_1 | Is the server running locally and accepting connections on that socket?
mytb_1 | psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
mytb_1 | Is the server running locally and accepting connections on that socket?
别客气 :)
默认情况下,docker 连接内部网络中的服务。 要引用其他服务,您需要使用服务名称(或别名...),localhost 将不起作用。
发布的第二个问题与 rabbitmq 连接无关,您的 mytb_1 容器无法访问您的数据卷映射。 该服务需要有足够的权限来写入映射的目录
version: '2.2'
services:
mytb:
privileged: true
restart: always
depends_on:
- rabbitmq
image: "thingsboard/tb-postgres"
ports:
- "9091:9090"
- "1883:1883"
- "7070:7070"
- "5683-5688:5683-5688/udp"
environment:
TB_QUEUE_TYPE: rabbitmq
TB_QUEUE_RABBIT_MQ_USERNAME: test
TB_QUEUE_RABBIT_MQ_PASSWORD: test123369
# Use the rabbitmq service name as a host instead of localhost
TB_QUEUE_RABBIT_MQ_HOST: rabbitmq
TB_QUEUE_RABBIT_MQ_PORT: 5672
volumes:
- ./.mytb-data:/data
- ./.mytb-logs:/var/log/thingsboard
# make sure that the service has sufficient rights to
# write to the mapped directories
rabbitmq:
... (rest of file left out)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.