$docroot ??= ($_SERVER['DOCUMENT_ROOT'] ?: '/usr/local/emhttp');
require_once "$docroot/webGui/include/Helpers.php";
require_once "$docroot/plugins/dynamix.docker.manager/include/DockerClient.php";
// add translations
$_SERVER['REQUEST_URI'] = 'docker';
require_once "$docroot/webGui/include/Translations.php";
$DockerClient = new DockerClient();
$DockerTemplates = new DockerTemplates();
$containers = $DockerClient->getDockerContainers();
$images = $DockerClient->getDockerImages();
$user_prefs = $dockerManPaths['user-prefs'];
$autostart_file = $dockerManPaths['autostart-file'];
if (!$containers && !$images) {
echo "
";
if ($template && empty($composestack)) {
$appname = "".htmlspecialchars($name)."";
} else {
$appname = htmlspecialchars($name);
}
echo "$image$appname "._($status).(!empty($composestack) ? ' Compose Stack: ' . $composestack : '')."";
echo ""._('Container ID').": $id ";
if ($ct['BaseImage']) echo " ".htmlspecialchars($ct['BaseImage'])." ";
echo _('By').": ";
$registry = $info['registry'];
['strRepo' => $author, 'strTag' => $version] = DockerUtil::parseImageTag($ct['Image']);
if ($registry) {
echo " ".htmlspecialchars(compress($author,24))."";
} else {
echo htmlspecialchars(compress($author,24));
}
echo " | ";
switch ($updateStatus) {
case 0:
if ($ct['Manager'] == "dockerman") {
echo " "._('up-to-date')."";
echo "";
} elseif (!empty($composestack)) {
echo " Compose ";
echo " "._('up-to-date')."";
} else {
echo " 3rd Party ";
echo " "._('up-to-date')."";
}
break;
case 1:
echo " "._('update ready')." ";
if ($ct['Manager'] == "dockerman") {
echo " "._('apply update')."";
} elseif (!empty($composestack)) {
echo " Compose ";
echo " "._('update available')."";
} else {
echo " 3rd Party ";
echo " "._('update available')."";
}
break;
case 2:
echo " "._('rebuild ready')." ";
echo " "._('rebuilding')."";
break;
default:
if ($ct['Manager'] == "dockerman") {
echo " "._('not available')."";
echo "";
} elseif (!empty($composestack)) {
echo " Compose ";
echo " "._('not available')."";
} else {
echo " 3rd Party ";
echo " "._('not available')."";
}
break;
}
echo " ".compress(_($version),12,0)." | ";
echo " ".implode(' ',$networks)." | ";
echo " ".implode(' ',$network_ips)." | ";
echo "".implode(' ',$ports_internal)." | ";
echo "".implode(' ',$ports_external)." | ";
echo "".implode(' ',$paths)." | ";
echo "0% ";
echo " 0 / 0 | ";
if (empty($composestack)) {
if ($ct['Manager'] == "dockerman") {
echo "";
} else {
echo " | 3rd Party";
}
} else {
echo " | Compose";
}
echo ""._('wait')." | ";
echo "".htmlspecialchars(str_replace('Up',_('Uptime').':',my_lang_log($ct['Status'])))." "._('Created').": ".htmlspecialchars(my_lang_time($ct['Created']))." |
";
}
foreach ($images as $image) {
if (count($image['usedBy'])) continue;
$id = $image['Id'];
$menu = sprintf("onclick=\"addDockerImageContext('%s','%s')\"", $id, implode(',',$image['Tags']));
echo "";
echo " ("._('orphan image').") "._('stopped')."";
echo " | "._('Image ID').": $id ";
echo implode(', ',$image['Tags']);
echo " | "._('Created')." ".htmlspecialchars(_($image['Created'],0))." |
";
}
echo "\0".implode($docker)."\0".(pgrep('rc.docker')!==false ? 1:0);
?>