A service container is reachable on 127.0.0.1 only when the job runs directly on the runner host, which is how GitHub-hosted runners work and how the old host-executor runner worked. Under a container-mode runner the job is itself a container on the services network, published ports land on the runner host rather than the job's own localhost, and the service answers to its name. Fixes: pymysql.err.OperationalError (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection refused)").