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;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								?>
							 |