Docker: Add extra arguments setting

Change-Id: I3cd30001defb99ce6f23b31935dc3a21ce60a256
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2023-09-19 11:24:58 +02:00
parent f4f75224b7
commit ada5aacedb
3 changed files with 10 additions and 0 deletions

View File

@@ -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();

View File

@@ -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};
};

View File

@@ -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,