I'm trying to run rabbitMQ
using docker-compose
, but the service is always starting or unhealthy.
rabbit is running fine, so I suspect there is something wrong with my health check.
Running the healthcheck command locally does return a value.
> curl -f http://localhost:5672
AMQP %
But docker-compose ps
always says the service is unhealthy (or starting, before it runs out of time).
> docker-compose ps
docker-entrypoint.sh rabbi ... Up (unhealthy) 15671/tcp
Here is what my docker-compose.yml file looks like.
# docker-compose.yml
version: '2.3' # note: I can't change this version, must be 2.3
volumes:
rabbit-data:
services:
rabbit:
hostname: 'rabbit'
image: rabbitmq:3.8.5-management
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5672"]
interval: 30s
timeout: 30s
retries: 3
ports:
- '5672:5672'
- '15672:15672'
volumes:
- 'rabbit-data:/var/lib/rabbitmq/mnesia/'
networks:
- rabbitmq
networks:
rabbitmq:
driver: bridge
I have also tried using nc
instead of curl
in the healthcheck, but got the same result.
healthcheck:
test: [ "CMD", "nc", "-z", "localhost", "5672" ]