forked from qt-creator/qt-creator
Docker: Add some more information why certain operations fail
Change-Id: I7f561fbf089fff5ba0151f72789aad4c216b15fe Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -819,17 +819,15 @@ void DockerDevicePrivate::startContainer()
|
|||||||
dockerRun.addArgs({"--entrypoint", "/bin/sh", m_data.imageId});
|
dockerRun.addArgs({"--entrypoint", "/bin/sh", m_data.imageId});
|
||||||
|
|
||||||
LOG("RUNNING: " << dockerRun.toUserOutput());
|
LOG("RUNNING: " << dockerRun.toUserOutput());
|
||||||
QTC_ASSERT(!m_shell, delete m_shell);
|
QPointer<QtcProcess> shell = new QtcProcess(ProcessMode::Writer);
|
||||||
m_shell = new QtcProcess(ProcessMode::Writer);
|
connect(shell, &QtcProcess::finished, this, [this, shell] {
|
||||||
m_shell->setCommand(dockerRun);
|
|
||||||
connect(m_shell, &QtcProcess::finished, this, [this] {
|
|
||||||
LOG("\nSHELL FINISHED\n");
|
LOG("\nSHELL FINISHED\n");
|
||||||
if (m_shell) {
|
QTC_ASSERT(shell, return);
|
||||||
const int exitCode = m_shell->exitCode();
|
const int exitCode = shell->exitCode();
|
||||||
LOG("RES: " << m_shell->result()
|
LOG("RES: " << shell->result()
|
||||||
<< " EXIT CODE: " << exitCode
|
<< " EXIT CODE: " << exitCode
|
||||||
<< " STDOUT: " << m_shell->readAllStandardOutput()
|
<< " STDOUT: " << shell->readAllStandardOutput()
|
||||||
<< " STDERR: " << m_shell->readAllStandardError());
|
<< " STDERR: " << 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 (exitCode > 120) {
|
if (exitCode > 120) {
|
||||||
@@ -840,10 +838,11 @@ void DockerDevicePrivate::startContainer()
|
|||||||
"docker daemon on the docker device settings page "
|
"docker daemon on the docker device settings page "
|
||||||
"or restart Qt Creator."));
|
"or restart Qt Creator."));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
m_container.clear();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
QTC_ASSERT(!m_shell, delete m_shell);
|
||||||
|
m_shell = shell;
|
||||||
|
m_shell->setCommand(dockerRun);
|
||||||
m_shell->start();
|
m_shell->start();
|
||||||
m_shell->waitForStarted();
|
m_shell->waitForStarted();
|
||||||
|
|
||||||
@@ -1611,9 +1610,11 @@ bool DockerDevicePrivate::runInContainer(const CommandLine &cmd) const
|
|||||||
|
|
||||||
bool DockerDevicePrivate::runInShell(const CommandLine &cmd) const
|
bool DockerDevicePrivate::runInShell(const CommandLine &cmd) const
|
||||||
{
|
{
|
||||||
if (!DockerPlugin::isDaemonRunning().value_or(false))
|
if (!QTC_GUARD(DockerPlugin::isDaemonRunning().value_or(false))) {
|
||||||
|
LOG("No daemon. Could not run " << cmd.toUserOutput());
|
||||||
return false;
|
return false;
|
||||||
QTC_ASSERT(m_shell, return false);
|
}
|
||||||
|
QTC_ASSERT(m_shell, LOG("No shell. Could not run " << cmd.toUserOutput()); return false);
|
||||||
QMutexLocker l(&m_shellMutex);
|
QMutexLocker l(&m_shellMutex);
|
||||||
m_shell->readAllStandardOutput(); // clean possible left-overs
|
m_shell->readAllStandardOutput(); // clean possible left-overs
|
||||||
m_shell->write(cmd.toUserOutput().toUtf8() + "\necho $?\n");
|
m_shell->write(cmd.toUserOutput().toUtf8() + "\necho $?\n");
|
||||||
|
Reference in New Issue
Block a user