diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..60701eb --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,19 @@ +FROM alpine:3.8 + +RUN apk update && apk upgrade +RUN apk add s6 + +RUN apk add --no-cache nodejs npm --repository http://dl-cdn.alpinelinux.org/alpine/edge/main +RUN npm i -g preserves +ENV NODE_PATH=/usr/lib/node_modules + +# RUN apk add --no-cache daemontools --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing + +RUN apk add dbus avahi avahi-tools +RUN rm -f /etc/avahi/services/* + +RUN mkdir -p /run/service +ADD service /run/service + +WORKDIR /run/service +CMD ["s6-svscan", "-St1000", "/run/service"] diff --git a/docker/build-docker.sh b/docker/build-docker.sh new file mode 100755 index 0000000..b91b1fa --- /dev/null +++ b/docker/build-docker.sh @@ -0,0 +1,2 @@ +#!/bin/sh +docker build -t syndicate-js "$(dirname "$0")" diff --git a/docker/cleanup b/docker/cleanup new file mode 100755 index 0000000..6c0552e --- /dev/null +++ b/docker/cleanup @@ -0,0 +1,6 @@ +#!/bin/sh +cd "$(dirname "$0")" +sudo rm -rf service/.s6-svscan/control +sudo rm -rf service/.s6-svscan/lock +sudo rm -rf service/*/event/ +sudo rm -rf service/*/supervise/ diff --git a/docker/docker-broker.sh b/docker/docker-broker.sh new file mode 100755 index 0000000..362f35c --- /dev/null +++ b/docker/docker-broker.sh @@ -0,0 +1,17 @@ +#!/bin/sh +dir="$(dirname "$0")/.." +case "$dir" in + /*) ;; + *) dir="$(pwd)/${dir}" ;; +esac + +networkname=dockerint +if [ -z "$(docker network ls -qf name=${networkname})" ] +then + docker network create --internal ${networkname} +fi + +exec docker run -it --rm \ + --network ${networkname} \ + -v "${dir}":/data \ + syndicate-js diff --git a/docker/service/.s6-svscan/finish b/docker/service/.s6-svscan/finish new file mode 100755 index 0000000..acab531 --- /dev/null +++ b/docker/service/.s6-svscan/finish @@ -0,0 +1,13 @@ +#!/bin/sh +kill -TERM -1 +while true +do + running="$(ps a)" + if [ "$(echo "${running}" | wc -l)" = "3" ] + then + break + else + echo Waiting for services to shut down... + sleep 1 + fi +done diff --git a/docker/service/avahi-daemon/run b/docker/service/avahi-daemon/run new file mode 100755 index 0000000..c6e6c1d --- /dev/null +++ b/docker/service/avahi-daemon/run @@ -0,0 +1,3 @@ +#!/bin/sh +s6-svwait ../dbus-daemon +exec avahi-daemon diff --git a/docker/service/dbus-daemon/run b/docker/service/dbus-daemon/run new file mode 100755 index 0000000..047803d --- /dev/null +++ b/docker/service/dbus-daemon/run @@ -0,0 +1,2 @@ +#!/bin/sh +exec dbus-daemon --system --nofork diff --git a/docker/service/syndicate-broker/run b/docker/service/syndicate-broker/run new file mode 100755 index 0000000..21becb8 --- /dev/null +++ b/docker/service/syndicate-broker/run @@ -0,0 +1,4 @@ +#!/bin/sh +s6-svwait ../avahi-daemon +cd /data/packages/broker +exec node lib/index.js