【发布时间】:2021-04-05 06:26:18
【问题描述】:
我尝试使用 Docker Compose ECS 集成在 ECS 上部署 ThingsBoard:我设置了一个外部数据库,我编写了 Docker Compose 文件
version: '3.8'
services:
thingsboard:
container_name: thingsboard
image: thingsboard/tb-postgres
restart: always
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://<HOST>:<PORT>/thingsboard?sslmode=require
- SPRING_DATASOURCE_USERNAME=<USERNAME>
- SPRING_DATASOURCE_PASSWORD=<PASSWORD>
ports:
- '9090:9090'
- '1883:1883'
- '5683:5683/udp'
然后我使用docker compose up 在 ECS 上启动堆栈。
集群已正确创建,我可以从 CloudWatch 日志中看到 ThingsBoard 容器正确启动(即使它非常慢)。
不过,由于运行状况检查失败,ECS 会在一段时间后取消注册任务。
ECS 事件日志说:
service thingsboard-ThingsboardService-XXX (port 9090) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).
service thingsboard-ThingsboardService-XXX (port 1883) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).
service thingsboard-ThingsboardService-XXX (port 5683) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).
修改健康检查配置,我至少可以登录到 ThingsBoard 并检查一切是否正常。但是,几分钟后,健康检查再次失败,任务停止。
这是为什么呢?
【问题讨论】:
标签: docker-compose amazon-ecs thingsboard