Discovered Docker apps now use the same buildAppUrl logic as integrations when a base host is set, instead of using the raw Docker socket URL (e.g. http://container:5432). Extracts shared buildUrl helper and adds buildAppUrl that derives a slug from the container name. Also passes publishedPort through the DiscoveredApp type so host:port mode works correctly.