zeus
4 years ago
8 changed files with 144 additions and 0 deletions
@ -0,0 +1 @@ |
|||||
|
docker build -f Dockerfile.iot-example -t hub.swarmlab.io:5443/iot-swarm-example . |
@ -0,0 +1,69 @@ |
|||||
|
#FROM alpine:3.11 |
||||
|
FROM node:alpine |
||||
|
|
||||
|
LABEL MAINTAINERS="Guillaume Scheibel <guillaume.scheibel@gmail.com>, Damien DUPORTAL <damien.duportal@gmail.com>" |
||||
|
|
||||
|
# Installing package required for the runtime |
||||
|
RUN apk add --no-cache \ |
||||
|
bash \ |
||||
|
curl \ |
||||
|
ca-certificates \ |
||||
|
findutils \ |
||||
|
font-bakoma-ttf \ |
||||
|
git \ |
||||
|
graphviz \ |
||||
|
inotify-tools \ |
||||
|
make \ |
||||
|
python3 \ |
||||
|
py3-pillow \ |
||||
|
py3-setuptools \ |
||||
|
tzdata \ |
||||
|
unzip \ |
||||
|
build-base \ |
||||
|
libxml2-dev \ |
||||
|
which |
||||
|
|
||||
|
# Installing Python dependencies for additional |
||||
|
# functionnalities |
||||
|
RUN apk add --no-cache --virtual .pythonmakedepends \ |
||||
|
build-base \ |
||||
|
python3-dev \ |
||||
|
py3-pip \ |
||||
|
&& pip3 install --no-cache-dir \ |
||||
|
actdiag \ |
||||
|
pip install supervisor supervisor-stdout \ |
||||
|
'blockdiag[pdf]' \ |
||||
|
nwdiag \ |
||||
|
seqdiag \ |
||||
|
&& apk del -r --no-cache .pythonmakedepends |
||||
|
|
||||
|
RUN ln -s /usr/local/bin/node /usr/bin/node |
||||
|
|
||||
|
ADD supervisord.conf /etc/supervisor/supervisord.conf |
||||
|
ADD supervisord-iot.conf /etc/supervisor/conf.d/node-app.conf |
||||
|
|
||||
|
|
||||
|
COPY iot-swarm-example /home/node/iot-swarm-example/ |
||||
|
|
||||
|
RUN chown -R node.node /home/node \ |
||||
|
&& chmod -R 755 /home/node |
||||
|
|
||||
|
WORKDIR /home/node/iot-swarm-example |
||||
|
VOLUME /home/node/iot-swarm-example |
||||
|
|
||||
|
ENV NODE_PATH=/usr/local/lib/node_modules |
||||
|
|
||||
|
USER node |
||||
|
|
||||
|
RUN cd /home/node/iot-swarm-example/src/browser-client \ |
||||
|
set -uex; \ |
||||
|
npm install \ |
||||
|
npm cache clean --force \ |
||||
|
cd /home/node/iot-swarm-example/src/IoT \ |
||||
|
npm install \ |
||||
|
npm cache clean --force; |
||||
|
|
||||
|
|
||||
|
EXPOSE 8080 8088 8084 3081 |
||||
|
|
||||
|
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"] |
@ -0,0 +1,4 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
#docker run --rm -it -p 8084:8084 -v $PWD/src:/home/node/iot-swarm-example/src hub.swarmlab.io:5443/iot-swarm-example:latest bash -c "node /home/node/iot-swarm-example/src/IoT/llo/iotserver.js" |
||||
|
docker run --rm -it --name iotserver -p 8084:8084 -v $PWD/src:/home/node/iot-swarm-example/src hub.swarmlab.io:5443/iot-swarm-example:latest node /home/node/iot-swarm-example/src/IoT/llo/iotserver.js |
@ -0,0 +1,3 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
docker run --rm -it --name iotwebclient -p 8080:8080 -v $PWD/src:/home/node/iot-swarm-example/src hub.swarmlab.io:5443/iot-swarm-example:latest /bin/bash -c "cd /home/node/iot-swarm-example/src/browser-client; npm run serve" |
@ -0,0 +1,4 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
docker stop iotserver |
||||
|
docker rm iotserver |
@ -0,0 +1,4 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
docker stop iotwebclient |
||||
|
docker rm iotwebclient |
@ -0,0 +1,13 @@ |
|||||
|
[program:node-app] |
||||
|
environment PATH=/usr/local/sbin |
||||
|
#command=/usr/local/bin/node /usr/src/app/bin/www |
||||
|
command=/usr/local/bin/node /home/node/iot-swarm-example/src/IoT/llo/iotserver.js |
||||
|
user=node |
||||
|
autostart=true |
||||
|
startretries=10 |
||||
|
autorestart=true |
||||
|
priority=1 |
||||
|
stdout_logfile=/dev/fd/1 |
||||
|
stdout_logfile_maxbytes=0 |
||||
|
redirect_stderr=true |
||||
|
|
@ -0,0 +1,46 @@ |
|||||
|
[unix_http_server] |
||||
|
file=/var/run/supervisor.sock ; (the path to the socket file) |
||||
|
;chmod=0700 ; socket file mode (default 0700) |
||||
|
;chown=nobody:nogroup ; socket file uid:gid owner |
||||
|
;username=user ; (default is no username (open server)) |
||||
|
;password=123 ; (default is no password (open server)) |
||||
|
|
||||
|
[inet_http_server] ; inet (TCP) server disabled by default |
||||
|
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) |
||||
|
;username=user ; (default is no username (open server)) |
||||
|
;password=123 ; (default is no password (open server)) |
||||
|
|
||||
|
[supervisord] |
||||
|
logfile=/dev/null ; (main log file;default $CWD/supervisord.log) |
||||
|
logfile_maxbytes=0 ; (max main logfile bytes b4 rotation;default 50MB) |
||||
|
logfile_backups=0 ; (num of main logfile rotation backups;default 10) |
||||
|
loglevel=info ; (log level;default info; others: debug,warn,trace) |
||||
|
;pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) |
||||
|
nodaemon=true ; (start in foreground if true;default false) |
||||
|
minfds=1024 ; (min. avail startup file descriptors;default 1024) |
||||
|
minprocs=200 ; (min. avail process descriptors;default 200) |
||||
|
;umask=022 ; (process file creation umask;default 022) |
||||
|
;user=chrism ; (default is current user, required if root) |
||||
|
;identifier=supervisor ; (supervisord identifier, default is 'supervisor') |
||||
|
;directory=/tmp ; (default is not to cd during start) |
||||
|
;nocleanup=true ; (don't clean up tempfiles at start;default false) |
||||
|
;childlogdir=/tmp ; ('AUTO' child log dir, default $TEMP) |
||||
|
;environment=KEY="value" ; (key value pairs to add to environment) |
||||
|
;strip_ansi=false ; (strip ansi escape codes in logs; def. false) |
||||
|
|
||||
|
; the below section must remain in the config file for RPC |
||||
|
; (supervisorctl/web interface) to work, additional interfaces may be |
||||
|
; added by defining them in separate rpcinterface: sections |
||||
|
[rpcinterface:supervisor] |
||||
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface |
||||
|
|
||||
|
[supervisorctl] |
||||
|
serverurl=unix:///usr/local/var/run/supervisor.sock ; use a unix:// URL for a unix socket |
||||
|
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket |
||||
|
;username=chris ; should be same as http_username if set |
||||
|
;password=123 ; should be same as http_password if set |
||||
|
;prompt=mysupervisor ; cmd line prompt (default "supervisor") |
||||
|
;history_file=~/.sc_history ; use readline history if available |
||||
|
|
||||
|
[include] |
||||
|
files = /etc/supervisor/conf.d/*.conf |
Loading…
Reference in new issue