version: '2.4' services: app: image: 'monica:2.20.0-apache' restart: 'always' healthcheck: test: 'curl -f localhost:8080 || exit 1' interval: '1m' timeout: '10s' retries: 3 start_period: '10s' depends_on: db: condition: 'service_started' redis: condition: 'service_healthy' env_file: - '.env' networks: - 'default' - 'nginx' volumes: - 'data:/var/www/html/storage' db: image: 'mysql:8.0.24' restart: 'always' command: '--default-authentication-plugin=mysql_native_password' environment: - 'MYSQL_RANDOM_ROOT_PASSWORD=true' - 'MYSQL_DATABASE=monica' - 'MYSQL_USER=monica' - 'MYSQL_PASSWORD=monica' volumes: - 'db-data:/var/lib/mysql' redis: image: 'redis:6.2.2-alpine' restart: 'always' healthcheck: test: 'redis-cli -h localhost ping' interval: '10s' timeout: '5s' retries: 3 networks: nginx: external: true volumes: data: db-data: