From 742f92d246afc7733b260f11052e538ab47604c2 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Fri, 14 Oct 2022 10:01:46 +0200 Subject: [PATCH] Docker: Use host.docker.internal DockerDesktop on Windows and macOS provide the hostname host.docker.internal to reach the host machine. We use that as its more likely to work for different setups than trying to figure out the host ip yourself. Change-Id: I9f594d0e97e7f35ceb580ac3e3304de999bfea9c Reviewed-by: hjk Reviewed-by: David Schulz Reviewed-by: --- src/plugins/docker/dockerdevice.cpp | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 8db1ae9ff20..fdc367e671b 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -479,20 +479,6 @@ void DockerDevicePrivate::stopCurrentContainer() m_cachedEnviroment.clear(); } -static QString getLocalIPv4Address() -{ - const QList addresses = QNetworkInterface::allAddresses(); - for (auto &a : addresses) { - if (a.isInSubnet(QHostAddress("192.168.0.0"), 16)) - return a.toString(); - if (a.isInSubnet(QHostAddress("10.0.0.0"), 8)) - return a.toString(); - if (a.isInSubnet(QHostAddress("172.16.0.0"), 12)) - return a.toString(); - } - return QString(); -} - bool DockerDevicePrivate::prepareForBuild(const Target *target) { QTC_ASSERT(QThread::currentThread() == thread(), return false); @@ -574,7 +560,7 @@ bool DockerDevicePrivate::createContainer() return false; const QString display = HostOsInfo::isLinuxHost() ? QString(":0") - : QString(getLocalIPv4Address() + ":0.0"); + : QString("host.docker.internal:0"); CommandLine dockerCreate{m_settings->dockerBinaryPath.filePath(), {"create", "-i",