added doku for installatin in README
This commit is contained in:
16
ChangeLog
16
ChangeLog
@@ -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,
|
||||||
|
24
README
24
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 {
|
||||||
|
Reference in New Issue
Block a user