Healthchecks as the dependency mechanism

With depends_on conditions gone, a healthcheck is how one service learns another is usable — and it is more honest, because it tests the thing rather than the process being alive.

HEALTHCHECK --interval=10s --timeout=3s --start-period=30s --retries=3 
  CMD php -r 'new PDO(getenv("DSN"), getenv("DB_USER"), getenv("DB_PASS"));' || exit 1

--start-period is the flag that stops a slow-booting container being marked unhealthy and restarted before it has finished starting, which is a restart loop that looks like a crash. Keep the check cheap: it runs on every container every interval, so a check that queries three tables becomes background load. Exit code 1 means unhealthy; 2 is reserved.