aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/docker
diff options
context:
space:
mode:
authorMarcus Tillmanns <[email protected]>2023-09-19 11:24:58 +0200
committerMarcus Tillmanns <[email protected]>2023-09-21 08:17:45 +0000
commitada5aacedbb71bad18962e22f637a59973ccc5d6 (patch)
treee5fbefe76bb089c59040413e8d17e8ea98652b26 /src/plugins/docker
parentf4f75224b7fbafca1decb1befacb05d20467a0b5 (diff)
Docker: Add extra arguments setting
Diffstat (limited to 'src/plugins/docker')
-rw-r--r--src/plugins/docker/dockerdevice.cpp8
-rw-r--r--src/plugins/docker/dockerdevice.h1
-rw-r--r--src/plugins/docker/dockerdevicewidget.cpp1
3 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp
index e2646dcaf30..af00987c7d5 100644
--- a/src/plugins/docker/dockerdevice.cpp
+++ b/src/plugins/docker/dockerdevice.cpp
@@ -98,6 +98,7 @@ const char DockerDeviceMappedPaths[] = "DockerDeviceMappedPaths";
const char DockerDeviceKeepEntryPoint[] = "DockerDeviceKeepEntryPoint";
const char DockerDeviceEnableLldbFlags[] = "DockerDeviceEnableLldbFlags";
const char DockerDeviceClangDExecutable[] = "DockerDeviceClangDExecutable";
+const char DockerDeviceExtraArgs[] = "DockerDeviceExtraCreateArguments";
class ContainerShell : public Utils::DeviceShell
{
@@ -187,6 +188,11 @@ DockerDeviceSettings::DockerDeviceSettings()
mounts.setToolTip(Tr::tr("Maps paths in this list one-to-one to the docker container."));
mounts.setPlaceHolderText(Tr::tr("Host directories to mount into the container"));
+ extraArgs.setSettingsKey(DockerDeviceExtraArgs);
+ extraArgs.setLabelText(Tr::tr("Extra arguments:"));
+ extraArgs.setDefaultValue({});
+ extraArgs.setToolTip(Tr::tr("Extra arguments to pass to docker create."));
+
clangdExecutable.setSettingsKey(DockerDeviceClangDExecutable);
clangdExecutable.setLabelText(Tr::tr("Clangd Executable:"));
clangdExecutable.setAllowPathFromDevice(true);
@@ -812,6 +818,8 @@ expected_str<QString> DockerDevicePrivate::createContainer()
if (deviceSettings->enableLldbFlags())
dockerCreate.addArgs({"--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"});
+ dockerCreate.addArgs(deviceSettings->extraArgs(), CommandLine::Raw);
+
dockerCreate.addArg(deviceSettings->repoAndTag());
qCDebug(dockerDeviceLog).noquote() << "RUNNING: " << dockerCreate.toUserOutput();
diff --git a/src/plugins/docker/dockerdevice.h b/src/plugins/docker/dockerdevice.h
index 51fc05be28a..4996a5e95b2 100644
--- a/src/plugins/docker/dockerdevice.h
+++ b/src/plugins/docker/dockerdevice.h
@@ -33,6 +33,7 @@ public:
Utils::BoolAspect enableLldbFlags{this};
Utils::FilePathAspect clangdExecutable{this};
Utils::StringSelectionAspect network{this};
+ Utils::StringAspect extraArgs{this};
Utils::TextDisplay containerStatus{this};
};
diff --git a/src/plugins/docker/dockerdevicewidget.cpp b/src/plugins/docker/dockerdevicewidget.cpp
index eb910b41956..e4b7ecdcb3f 100644
--- a/src/plugins/docker/dockerdevicewidget.cpp
+++ b/src/plugins/docker/dockerdevicewidget.cpp
@@ -168,6 +168,7 @@ DockerDeviceWidget::DockerDeviceWidget(const IDevice::Ptr &device)
deviceSettings->enableLldbFlags, br,
deviceSettings->clangdExecutable, br,
deviceSettings->network, br,
+ deviceSettings->extraArgs, br,
Column {
pathListLabel,
deviceSettings->mounts,