Docker Compose healthcheck
2021-09-09
The most important thing when running integration test using docker-compose is ensured that one container is started completely before others.
Sometime wait-for-it is not enough:
cassandra:
image: bitnami/cassandra:latest
ports:
- '7000:7000'
- '9042:9042'
volumes:
- /path/to/init-scripts:/docker-entrypoint-initdb.d
wait-for-cassandra:
image: willwill/wait-for-it
command: cassandra:9042 -t 60
depends_on:
- cassandra:
condition form of depends_on in docker-compose version 3
2021-03-05
As version 3 no longer supports the condition form of depends_on, what is the alternative way to wait for a container to be started completely?
From 1.27.0, 2.x and 3.x are merged with COMPOSE_SPEC schema.
version is now optional. So, you can just remove it and specify a condition as before:
services:
web:
build: .
depends_on:
redis:
condition: service_healthy
redis:
image: redis
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 1s
timeout: 3s
retries: 30
Quan Tong