From 4d4f2e9a9255ad87560b324c3ad4a41760f7cdf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Thu, 1 Nov 2018 21:08:07 +0100 Subject: [PATCH] shows docker swarm stack --- Dockerfile | 19 +++++++++++++++++++ app.js | 14 ++------------ bin/www | 20 ++++++++++++++------ client/servicedock.js | 2 +- package.json | 24 +++++++++++++----------- start.sh | 3 +++ style/style.styl | 6 +++++- views/index.pug | 2 +- views/layout.pug | 3 ++- 9 files changed, 60 insertions(+), 33 deletions(-) create mode 100644 Dockerfile create mode 100755 start.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e5d6db --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM mwaeckerlin/base +MAINTAINER mwaeckerlin + +ENV PORT 4000 + +ENV CONTAINERNAME "servicedock" +RUN adduser -D npm +ADD --chown=npm . /app +WORKDIR /app +RUN apk add npm python docker make g++ \ + && npm install npm@latest -g \ + && rm -rf node_modules \ + && npm install \ + && npm audit fix --force \ + && apk del python make g++ +#USER npm + +EXPOSE $PORT +VOLUME /var/run/docker.sock diff --git a/app.js b/app.js index 21324f8..b83f75f 100644 --- a/app.js +++ b/app.js @@ -4,19 +4,9 @@ var favicon = require('static-favicon') var logger = require('morgan') var cookieParser = require('cookie-parser') var bodyParser = require('body-parser') -var io = require('socket.io').listen(app) -var docker = require('docker.js')(app, io) -io.sockets.on('connection', docker.connect(socket)) - var routes = require('./routes/index') -var users = require('./routes/users') - var app = express() -var io = require('socket.io').listen(app) -var docker = require('docker.js')(app, io) -io.sockets.on('connection', docker.connect(socket)) - // view engine setup app.set('views', path.join(__dirname, 'views')) app.set('view engine', 'pug') @@ -26,11 +16,12 @@ app.use(logger('dev')) app.use(bodyParser.json()) app.use(bodyParser.urlencoded()) app.use(cookieParser()) -app.use(require('stylus').middleware(path.join(__dirname, 'public'))) +app.use(require('stylus').middleware(path.join(__dirname, 'style'))) app.use(express.static(path.join(__dirname, 'style'))) app.use(express.static(path.join(__dirname, 'client'))) app.use(express.static(path.join(__dirname, 'node_modules', 'jquery', 'dist'))) app.use(express.static(path.join(__dirname, 'node_modules', 'viz.js'))) +app.use(express.static(path.join(__dirname, 'node_modules', 'socket.io-client', 'dist'))) app.use(express.static(path.join(__dirname, 'node_modules', 'docker.js'))) app.use('/', routes) @@ -66,5 +57,4 @@ app.use(function(err, req, res, next) { }) }) - module.exports = app diff --git a/bin/www b/bin/www index 3b36290..8e463bd 100755 --- a/bin/www +++ b/bin/www @@ -1,9 +1,17 @@ -#!/usr/bin/nodejs -var debug = require('debug')('ServiceDock'); -var app = require('../app'); +#!/usr/bin/node -app.set('port', process.env.PORT || 4000); +var debug = require('debug')('ServiceDock') +var app = require('../app') + +app.set('port', process.env.PORT || 4000) var server = app.listen(app.get('port'), function() { - debug('Express server listening on port ' + server.address().port); -}); + debug('Express server listening on port ' + server.address().port) +}) +var io = require('socket.io').listen(server) +var docker = require('docker.js')(app, io) + +io.sockets.on('connection', docker.connect) +debug('Socket server listening on port ' + server.address().port); + + diff --git a/client/servicedock.js b/client/servicedock.js index b8856a2..58e7d59 100644 --- a/client/servicedock.js +++ b/client/servicedock.js @@ -5,6 +5,6 @@ function error(msg) { } function init() { socket = io.connect(); - docker = new Docker(socket, '#main', error); + docker = new Docker(socket, error, '#containers', '#nodes', '#stacks'); } $(init); diff --git a/package.json b/package.json index d04d330..a0e3df8 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,21 @@ { "name": "ServiceDock", - "version": "2.0.0", + "version": "2.1.0", "private": true, "scripts": { - "start": "nodejs ./bin/www" + "start": "./bin/www" }, "dependencies": { - "body-parser": "~1.0.0", - "cookie-parser": "~1.0.1", - "debug": "~0.7.4", - "docker.js": "^1.0.1", - "express": "~4.0.0", - "morgan": "~1.0.0", - "pug": "^2.0.3", - "static-favicon": "~1.0.0", - "stylus": "0.42.3" + "body-parser": "*", + "cookie-parser": "*", + "debug": "*", + "docker.js": ">=1.2.0", + "express": "*", + "morgan": "*", + "pty.js": "*", + "pug": "*", + "socket.io": "*", + "static-favicon": "*", + "stylus": "*" } } diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..311d030 --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +npm start diff --git a/style/style.styl b/style/style.styl index 1377e2f..a8055cc 100644 --- a/style/style.styl +++ b/style/style.styl @@ -2,4 +2,8 @@ body padding: 50px font: 14px "Lucida Grande", Helvetica, Arial, sans-serif a - color: #00B7FF \ No newline at end of file + color: #00B7FF + +#main > svg + width: 100% + height: auto \ No newline at end of file diff --git a/views/index.pug b/views/index.pug index c448a2b..9f1a75d 100644 --- a/views/index.pug +++ b/views/index.pug @@ -2,4 +2,4 @@ extends layout block content h1 ServiceDock - div#main + div#stacks diff --git a/views/layout.pug b/views/layout.pug index 91c629d..95cf175 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -2,10 +2,11 @@ doctype html html head title= title - link(rel='stylesheet', href='/stylesheets/style.css') + link(rel='stylesheet', href='/style.css') script(type="text/javascript", src="/jquery.min.js") script(type="text/javascript", src="/viz.js") script(type="text/javascript", src="/docker.js") + script(type="text/javascript", src="/socket.io.js") script(type="text/javascript", src="/servicedock.js") body block content \ No newline at end of file