aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/docker/dockerdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/docker/dockerdevice.cpp')
-rw-r--r--src/plugins/docker/dockerdevice.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp
index bc732796a4..11be0ce2b0 100644
--- a/src/plugins/docker/dockerdevice.cpp
+++ b/src/plugins/docker/dockerdevice.cpp
@@ -834,9 +834,18 @@ void DockerDevicePrivate::startContainer()
dockerRun.addArgs({"-u", QString("%1:%2").arg(getuid()).arg(getgid())});
#endif
- for (const QString &mount : qAsConst(m_data.mounts)) {
- if (!mount.isEmpty())
- dockerRun.addArgs({"-v", mount + ':' + mount});
+ for (QString mount : qAsConst(m_data.mounts)) {
+ if (mount.isEmpty())
+ continue;
+ // make sure to convert windows style paths to unix style paths with the file system case:
+ // C:/dev/src -> /c/dev/src
+ if (const FilePath mountPath = FilePath::fromUserInput(mount).normalizedPathName();
+ mountPath.startsWithDriveLetter()) {
+ const QChar lowerDriveLetter = mountPath.path().at(0).toLower();
+ const FilePath path = FilePath::fromUserInput(mountPath.path().mid(2)); // strip C:
+ mount = '/' + lowerDriveLetter + path.path();
+ }
+ dockerRun.addArgs({"-v", mount + ':' + mount});
}
dockerRun.addArgs({"--entrypoint", "/bin/sh", m_data.imageId});