Docker: Override entrypoints when starting our shell

Some images have convenience entrypoints set, these get into the way
when we want to run a shell deterministically.

Change-Id: Ifedb9924456b80a9a3cdca64b5431c457b052f1a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2021-09-20 14:13:24 +02:00
parent 8437903295
commit a16144b89d

View File

@@ -798,8 +798,7 @@ void DockerDevicePrivate::startContainer()
dockerRun.addArgs({"-v", mount + ':' + mount}); dockerRun.addArgs({"-v", mount + ':' + mount});
} }
dockerRun.addArg(m_data.imageId); dockerRun.addArgs({"--entrypoint", "/bin/sh", m_data.imageId});
dockerRun.addArg("/bin/sh");
LOG("RUNNING: " << dockerRun.toUserOutput()); LOG("RUNNING: " << dockerRun.toUserOutput());
QTC_ASSERT(!m_shell, delete m_shell); QTC_ASSERT(!m_shell, delete m_shell);
@@ -808,12 +807,14 @@ void DockerDevicePrivate::startContainer()
connect(m_shell, &QtcProcess::finished, this, [this] { connect(m_shell, &QtcProcess::finished, this, [this] {
LOG("\nSHELL FINISHED\n"); LOG("\nSHELL FINISHED\n");
if (m_shell) { if (m_shell) {
const int exitCode = m_shell->exitCode();
LOG("RES: " << m_shell->result() LOG("RES: " << m_shell->result()
<< " EXIT CODE: " << exitCode
<< " STDOUT: " << m_shell->readAllStandardOutput() << " STDOUT: " << m_shell->readAllStandardOutput()
<< " STDERR: " << m_shell->readAllStandardError()); << " STDERR: " << m_shell->readAllStandardError());
// negative exit codes indicate problems like no docker daemon, missing permissions, // negative exit codes indicate problems like no docker daemon, missing permissions,
// no shell and seem to result in exit codes 125+ // no shell and seem to result in exit codes 125+
if (m_shell->exitCode() > 120) { if (exitCode > 120) {
DockerPlugin::setGlobalDaemonState(false); DockerPlugin::setGlobalDaemonState(false);
LOG("DOCKER DAEMON NOT RUNNING?"); LOG("DOCKER DAEMON NOT RUNNING?");
MessageManager::writeFlashing(tr("Docker Daemon appears to be not running. " MessageManager::writeFlashing(tr("Docker Daemon appears to be not running. "