diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 904c7cd4fcf..9a9e8d8ea82 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -776,10 +776,6 @@ Result DockerDevicePrivate::withDockerExecCmd( else containerId = *result; - auto osAndArch = osTypeAndArch(); - if (!osAndArch) - return make_unexpected(osAndArch.error()); - CommandLine dockerCmd{settings().dockerBinaryPath(), {"exec"}}; if (interactive) @@ -802,12 +798,16 @@ Result DockerDevicePrivate::withDockerExecCmd( dockerCmd.addArg(containerId); - dockerCmd.addArgs({"/bin/sh", "-c"}, osAndArch->first); + dockerCmd.addArgs({"/bin/sh", "-c"}); CommandLine exec("exec"); exec.addCommandLineAsArgs(cmd, CommandLine::Raw); if (withMarker) { + auto osAndArch = osTypeAndArch(); + if (!osAndArch) + return make_unexpected(osAndArch.error()); + // Check the executable for existence. CommandLine testType({"type", {}}); testType.addArg(cmd.executable().path(), osAndArch->first); @@ -821,9 +821,9 @@ Result DockerDevicePrivate::withDockerExecCmd( testType.addCommandLineWithAnd(echo); - dockerCmd.addCommandLineAsSingleArg(testType, osAndArch->first); + dockerCmd.addCommandLineAsSingleArg(testType); } else { - dockerCmd.addCommandLineAsSingleArg(exec, osAndArch->first); + dockerCmd.addCommandLineAsSingleArg(exec); } return dockerCmd;