Docker's layer cache was reusing old images even after code changes.
Adding --no-cache ensures the Python code is always freshly copied.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Wait for database health check then run pending migrations.
Idempotent - only applies migrations not yet in alembic_version.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>