Hi,
I’m running the gitlab-runner in a docker container. I’m using the docker executer and I’m trying to connect an Android Emulator running as docker container. Unfortunately there’s no support for services using devices like /dev/kvm which the Android Emualtor-Container heavily relies on (see this issue and this one). As a worka around I’d like to run the Android Emulator Container on the host and access it via network from the job:
The immediate issue is likely that the DNS is not propagating within (but there can be a subsequent issue where the network isn’t setup to access services on the host).
The job runtime cannot resolve android-emulator to any known IP address. You can try manually defining a hosts entry via the extra_hosts docker runner configuration, or try connecting with the IP of the host android-emulator directly if the route permits it.
Thanks for your answer. I looked up the follwing IP adresses:
Android Emulator: 172.19.0.3 /16
Gitlab Runner: 172.19.0.2/16
Job Container: 172.17.0.2/16
So the job container is in a seperate docker network. There’s no routing between docker networks by design (source) . So I can’t ping even using the IP address to exclude DNS problems. But because the port 5555 of the Emulator container is published to the host, I can reach it via host’s IP address with e.g. telnet <IP_HOST> 5555. Firewall was first blocking the connection. On Ubuntu I added the follwing rule to ufw: sudo ufw allow from 172.16.0.0/12 to any port 5555