mirror of
https://github.com/unraid/webgui.git
synced 2026-04-24 02:58:57 -05:00
Execute docker commands with timeout
This commit is contained in:
@@ -34,9 +34,9 @@ $DockerTemplates = new DockerTemplates();
|
||||
$echo = function($m){echo "<pre>".print_r($m, true)."</pre>";};
|
||||
|
||||
unset($custom);
|
||||
exec("docker network ls --filter driver='macvlan' --format='{{.Name}}'", $custom);
|
||||
exec("timeout 20 docker network ls --filter driver='macvlan' --format='{{.Name}}' 2>/dev/null", $custom);
|
||||
$subnet = ['bridge'=>'', 'host'=>'', 'none'=>''];
|
||||
foreach ($custom as $network) $subnet[$network] = substr(exec("docker network inspect --format='{{range .IPAM.Config}}{{.Subnet}}, {{end}}' $network"),0,-1);
|
||||
foreach ($custom as $network) $subnet[$network] = substr(docker("network inspect --format='{{range .IPAM.Config}}{{.Subnet}}, {{end}}' $network"),0,-1);
|
||||
|
||||
function stopContainer($name) {
|
||||
global $DockerClient;
|
||||
@@ -514,8 +514,8 @@ function getUsedPorts() {
|
||||
foreach ($names as $name) {
|
||||
$list = [];
|
||||
$list['Name'] = $name;
|
||||
$port = explode('|',exec("docker inspect --format='{{range \$c := .HostConfig.PortBindings}}{{(index \$c 0).HostPort}}|{{end}}' $name 2>/dev/null"));
|
||||
if (count($port)<2) $port = explode('|',str_replace(['/tcp','/udp'],'',exec("docker inspect --format='{{range \$p,\$c := .Config.ExposedPorts}}{{\$p}}|{{end}}' $name 2>/dev/null")));
|
||||
$port = explode('|',docker("inspect --format='{{range \$c := .HostConfig.PortBindings}}{{(index \$c 0).HostPort}}|{{end}}' $name"));
|
||||
if (count($port)<2) $port = explode('|',str_replace(['/tcp','/udp'],'',docker("inspect --format='{{range \$p,\$c := .Config.ExposedPorts}}{{\$p}}|{{end}}' $name")));
|
||||
natsort($port);
|
||||
$list['Port'] = implode(' ',array_unique($port));
|
||||
$ports[] = $list;
|
||||
@@ -529,8 +529,8 @@ function getUsedIPs() {
|
||||
foreach ($names as $name) {
|
||||
$list = [];
|
||||
$list['Name'] = $name;
|
||||
$mode = exec("docker inspect --format='{{lower .HostConfig.NetworkMode}}' $name 2>/dev/null");
|
||||
$list['ip'] = (exec("docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $name 2>/dev/null") ?: $eth0['IPADDR:0'])." ($mode)";
|
||||
$mode = docker("inspect --format='{{lower .HostConfig.NetworkMode}}' $name");
|
||||
$list['ip'] = (docker("inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $name") ?: $eth0['IPADDR:0'])." ($mode)";
|
||||
$ips[] = $list;
|
||||
}
|
||||
return $ips;
|
||||
@@ -747,7 +747,7 @@ if ($_GET['xmlTemplate']) {
|
||||
echo "<script>var Settings=".json_encode($xml).";</script>";
|
||||
}
|
||||
}
|
||||
exec("docker ps --format='{{.Names}}' 2>/dev/null",$names);
|
||||
exec("timeout 20 docker ps --format='{{.Names}}' 2>/dev/null",$names);
|
||||
echo "<script>var UsedPorts=".json_encode(getUsedPorts()).";</script>";
|
||||
echo "<script>var UsedIPs=".json_encode(getUsedIPs()).";</script>";
|
||||
$authoringMode = $dockercfg["DOCKER_AUTHORING_MODE"] == "yes" ? true : false;
|
||||
|
||||
Reference in New Issue
Block a user