added doku for installatin in README

single-host
Marc Wäckerlin 9 years ago
parent f4838221fa
commit d1c90271be
  1. 16
      ChangeLog
  2. 24
      README
  3. 13
      html/details.php
  4. 13
      html/manage.php
  5. 12
      html/overview.php
  6. 4
      html/servicedock.css

@ -1,3 +1,19 @@
2015-11-18 13:24 marc
* configure.ac, html/details.php, html/index.html.in,
html/jquery-ui.css, html/jquery-ui.js, html/jquery.ui.all.css,
html/makefile.am, html/manage.php, html/overview.php,
html/servicedock.css: fixed display bugs and added tabs for logs
and dump
2015-11-15 23:07 marc
* ChangeLog, configure.ac, doc/doxyfile.in, html/action.php,
html/details.php, html/index.html.in, html/jquery.js,
html/makefile.am, html/manage.php, html/menu.svg,
html/overview.php, html/servicedock.css, html/servicedock.js,
html/viz.js: first release
2015-11-14 11:43 marc 2015-11-14 11:43 marc
* ., AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README, * ., AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README,

@ -1,3 +1,25 @@
servicedock ServiceDock https://servicedock.ch
Run Docker as a Service. Run Docker as a Service.
Installation:
sudo pkg -i servicedock_*.deb
sudo apt-get install apache2 apache2-utils libapache2-mod-php5
sudo adduser www-data docker
sudo htdigest -c /etc/apache2/servicedock.digest "private area" $(whoami)
sudo dd of=/etc/apache2/conf-available/servicedock.conf <<EOF
Alias /servicedock /usr/share/servicedock/html
<Location /servicedock>
AuthType Digest
AuthName "private area"
AuthDigestDomain "/servicedock/" "http://dev0004/servicedock/"
AuthDigestProvider file
AuthUserFile "servicedock.digest"
Require valid-user
</Location>
EOF
sudo a2enconf servicedock
sudo a2enmod auth_digest
sudo service apache2 reload

@ -19,12 +19,21 @@ $containers=json_decode(join($res), true);
foreach ($containers as $c) { foreach ($containers as $c) {
$name = preg_replace(',^/,', '', $c['Name']); $name = preg_replace(',^/,', '', $c['Name']);
$ports = "<ul>"; $ports = "<ul>";
if ($c['NetworkSettings']['Ports']) if ($c['NetworkSettings']['Ports']) {
foreach ($c['NetworkSettings']['Ports'] as $from => $to) { foreach ($c['NetworkSettings']['Ports'] as $from => $to) {
if ($to) if ($to)
foreach ($to as $p) { foreach ($to as $p) {
if (isset($p['HostPort'])) if (isset($p['HostPort']))
$ports.="<li>-p ".($p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>'; $ports.="<li>-p ".($p['HostIp']&&$p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>';
}
}
} elseif ($c['HostConfig']['PortBindings']) {
foreach ($c['HostConfig']['PortBindings'] as $from => $to) {
if ($to)
foreach ($to as $p) {
if (isset($p['HostPort']))
$ports.="<li>-p ".($p['HostIp']&&$p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>';
}
} }
} }
$ports .= "</ul>"; $ports .= "</ul>";

@ -10,7 +10,7 @@ echo "</thead><tbody>";
foreach ($containers as $c) { foreach ($containers as $c) {
$name = preg_replace(',^/,', '', $c['Name']); $name = preg_replace(',^/,', '', $c['Name']);
$ports = "<ul>"; $ports = "<ul>";
if ($c['NetworkSettings']['Ports']) if ($c['NetworkSettings']['Ports']) {
foreach ($c['NetworkSettings']['Ports'] as $from => $to) { foreach ($c['NetworkSettings']['Ports'] as $from => $to) {
if ($to) if ($to)
foreach ($to as $p) { foreach ($to as $p) {
@ -18,6 +18,15 @@ foreach ($containers as $c) {
$ports.="<li>".($p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>'; $ports.="<li>".($p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>';
} }
} }
} elseif ($c['HostConfig']['PortBindings']) {
foreach ($c['HostConfig']['PortBindings'] as $from => $to) {
if ($to)
foreach ($to as $p) {
if (isset($p['HostPort']))
$ports.="<li>".($p['HostIp']&&$p['HostIp']!="0.0.0.0"?$p['HostIp'].":":"").$p['HostPort'].':'.$from.'</li>';
}
}
}
$ports .= "</ul>"; $ports .= "</ul>";
$links = "<ul>"; $links = "<ul>";
if ($c['HostConfig']['Links']) if ($c['HostConfig']['Links'])
@ -29,7 +38,7 @@ foreach ($containers as $c) {
elseif ($c['State']['Restarting']) {$status = "restarted"; $actions=Array();} elseif ($c['State']['Restarting']) {$status = "restarted"; $actions=Array();}
elseif ($c['State']['Paused']) {$status = "paused"; $actions=Array("unpause", "rm");} elseif ($c['State']['Paused']) {$status = "paused"; $actions=Array("unpause", "rm");}
elseif ($c['State']['Running']) {$status = "running"; $actions=Array("pause", "stop");} elseif ($c['State']['Running']) {$status = "running"; $actions=Array("pause", "stop");}
else {$status="dead"; $actions=Array("start", "remove");} else {$status="dead"; $actions=Array("start", "rm");}
$action=""; $action="";
foreach($actions as $a) foreach($actions as $a)
$action.='<a class="toolbutton" href="javascript:action('."'".$c['Id']."', '".$a."'".');">'.$a.'</a>'; $action.='<a class="toolbutton" href="javascript:action('."'".$c['Id']."', '".$a."'".');">'.$a.'</a>';

@ -17,7 +17,7 @@ if ($ret==0) {
foreach ($containers as $c) { foreach ($containers as $c) {
$name = preg_replace(',^/,', '', $c['Name']); $name = preg_replace(',^/,', '', $c['Name']);
$ports = null; $ports = null;
if ($c['NetworkSettings']['Ports']) if ($c['NetworkSettings']['Ports']) {
foreach ($c['NetworkSettings']['Ports'] as $ps) { foreach ($c['NetworkSettings']['Ports'] as $ps) {
if (isset($ps)) if (isset($ps))
foreach ($ps as $p) { foreach ($ps as $p) {
@ -26,6 +26,16 @@ if ($ret==0) {
else $ports = $p['HostPort']; else $ports = $p['HostPort'];
} }
} }
} elseif ($c['HostConfig']['PortBindings']) {
foreach ($c['HostConfig']['PortBindings'] as $ps) {
if (isset($ps))
foreach ($ps as $p) {
if (isset($p['HostPort']))
if (isset($ports)) $ports .= ", ".$p['HostPort'];
else $ports = $p['HostPort'];
}
}
}
$attrs=$name.'\\n'.$c['Config']['Image'].'",URL="javascript:details('."'".$c['Id']."'".')",style=filled'; $attrs=$name.'\\n'.$c['Config']['Image'].'",URL="javascript:details('."'".$c['Id']."'".')",style=filled';
if (isset($ports)) $attrs = $ports.'\\n'.$attrs.',peripheries=2'; if (isset($ports)) $attrs = $ports.'\\n'.$attrs.',peripheries=2';
if ($c['State']['Dead']) $attrs.=',fillcolor=red'; if ($c['State']['Dead']) $attrs.=',fillcolor=red';

@ -18,7 +18,7 @@ div {
} }
svg { svg {
width: 100%; max-width: 100%;
height: auto; height: auto;
} }
@ -147,7 +147,7 @@ table.docker li+li {
top: 0; top: 0;
margin: 0; margin: 0;
padding: 0 1em 0 1em; padding: 0 1em 0 1em;
background-color: green; background-color: blue;
color: white; color: white;
} }
#header #togglemenu { #header #togglemenu {

Loading…
Cancel
Save