39 lines
		
	
	
		
			1002 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1002 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
exec("docker images -aq", $res, $ret);
 | 
						|
if ($ret!=0) {
 | 
						|
  echo 'digraph {';
 | 
						|
  echo '  A [label="Error\nCannot get Docker Images"];';
 | 
						|
  echo '  B [label="Does the Webserver have Docker rights?"];';
 | 
						|
  echo '  A->B [label="Probable\nCause"];';
 | 
						|
  echo '}';
 | 
						|
  return;
 | 
						|
}
 | 
						|
exec("docker inspect ".join(" ", $res), $res2, $ret);
 | 
						|
if ($ret==0) {
 | 
						|
  $images=json_decode(join($res2), true);
 | 
						|
  echo "digraph {\n";
 | 
						|
  echo "  rankdir=TB;\n";
 | 
						|
 | 
						|
  foreach ($images as $i) {
 | 
						|
    $name = "";
 | 
						|
    if (isset($i['RepoTags']) && count($i['RepoTags'])>0) {
 | 
						|
      $name = join("\\n", $i['RepoTags']);
 | 
						|
      if (isset($i['Author']) && $i['Author']!="") $name .= '\\n['.$i['Author'].']';
 | 
						|
    }
 | 
						|
    echo '  "'.$i['Id'].'" [label="'.$name.'"];'."\n";
 | 
						|
  }
 | 
						|
 | 
						|
  foreach ($images as $i) {
 | 
						|
    if (isset($i['Parent']) && $i['Parent']!="")
 | 
						|
      echo '  "'.$i['Parent'].'" -> "'.$i['Id'].'";'."\n";
 | 
						|
  }
 | 
						|
  
 | 
						|
  echo "}";
 | 
						|
} else {
 | 
						|
  echo 'digraph {';
 | 
						|
  echo '  A [label="Error\nCannot Inspect Docker Container"];';
 | 
						|
  echo '}';
 | 
						|
  return;
 | 
						|
}
 | 
						|
 | 
						|
?>
 |