diff --git a/plugins/dynamix.docker.manager/include/CreateDocker.php b/plugins/dynamix.docker.manager/include/CreateDocker.php index fb551dbb8..b004133d9 100644 --- a/plugins/dynamix.docker.manager/include/CreateDocker.php +++ b/plugins/dynamix.docker.manager/include/CreateDocker.php @@ -182,9 +182,9 @@ if (isset($_GET['updateContainer'])){ $cmd = str_replace('/docker create ', '/docker run -d ', $cmd); $startContainer = true; // attempt graceful stop of container first - stopContainer($Name, $echo); + stopContainer($Name, false, $echo); } - // force kill container if still running after 10 seconds + // force kill container if still running after time-out if (empty($_GET['communityApplications'])) removeContainer($Name, $echo); execCommand($cmd, $echo); if ($startContainer) addRoute($Name); // add route for remote WireGuard access diff --git a/plugins/dynamix.docker.manager/include/DockerClient.php b/plugins/dynamix.docker.manager/include/DockerClient.php index 26dd1fa8d..e9832c82e 100644 --- a/plugins/dynamix.docker.manager/include/DockerClient.php +++ b/plugins/dynamix.docker.manager/include/DockerClient.php @@ -780,10 +780,7 @@ class DockerClient { public function stopContainer($id, $t=false) { global $dockercfg; - - if ( ! $t ) - $t = intval($dockercfg['DOCKER_TIMEOUT']) ?: 10; - $this->getDockerJSON("/containers/$id/stop?t=$t", 'POST', $code); + $this->getDockerJSON("/containers/$id/stop?t=".($t?:$dockercfg['DOCKER_TIMEOUT']??10), 'POST', $code); $this->flushCache($this::$containersCache); return $code; } diff --git a/plugins/dynamix.docker.manager/include/Helpers.php b/plugins/dynamix.docker.manager/include/Helpers.php index 5aa663f70..ce8682159 100644 --- a/plugins/dynamix.docker.manager/include/Helpers.php +++ b/plugins/dynamix.docker.manager/include/Helpers.php @@ -311,7 +311,7 @@ function xmlToCommand($xml, $create_paths=false) { $cmdName, $cmdNetwork, $cmdMyIP, $cmdCPUset, $logSize, $logFile, $cmdPrivileged, implode(' -e ', $Variables), implode(' -l ', $Labels), implode(' -p ', $Ports), implode(' -v ', $Volumes), implode(' --device=', $Devices), $xml['ExtraParams'], escapeshellarg($xml['Repository']), $xml['PostArgs']); return [preg_replace('/\s\s+/', ' ', $cmd), $xml['Name'], $xml['Repository']]; } -function stopContainer($name, $t=10, $echo=true) { +function stopContainer($name, $t=false, $echo=true) { global $DockerClient; $waitID = mt_rand(); if ($echo) { diff --git a/plugins/dynamix/include/UpdateTwo.php b/plugins/dynamix/include/UpdateTwo.php index d46f76237..995c10cfa 100644 --- a/plugins/dynamix/include/UpdateTwo.php +++ b/plugins/dynamix/include/UpdateTwo.php @@ -1,6 +1,6 @@ stopContainer($ct,30); + $DockerClient->stopContainer($ct); } - // force kill container if still running after 30 seconds + // force kill container if still running after time-out $DockerClient->removeContainer($ct); execCommand($cmd,false); $DockerClient->flushCaches();