aspnet base image ships neither curl nor wget, so the compose healthcheck's wget call failed silently at the exec level (visible only in docker's health-check log, not app stdout). Install curl in the Dockerfile.ci final stage and switch the healthcheck to use it.