This docker-compose.yml does a healtheck for mysql and starts up wordpress when the database is ready:
---
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
depends_on:
db:
condition: service_healthy
volumes:
- wordpress:/var/www/html
db:
#image: mariadb:11.2
image: mysql:8.4
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_ROOT_PASSWORD: Supersecret007
healthcheck:
test: [
"CMD",
'mysqladmin',
'ping',
'-h',
'localhost' #,
'-u',
'root',
'-p$$MYSQL_ROOT_PASSWORD'
]
interval: 5s
timeout: 5s
retries: 2
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db: