From 868a34cffb7fcea6139583d0f058e32b516d168c Mon Sep 17 00:00:00 2001 From: Giovanni Angoli Date: Sun, 30 Oct 2016 13:40:14 +0100 Subject: [PATCH] Reworked Dockerfiles for smaller Images, Healthcheck added (#6) --- Dockerfile | 31 ++++++++++++++++++++----------- Dockerfile.armhf | 28 ++++++++++++++++++++-------- recorder-health.sh | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 19 deletions(-) create mode 100644 recorder-health.sh diff --git a/Dockerfile b/Dockerfile index 93c8938..5168f95 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,14 +2,15 @@ FROM debian:jessie LABEL version="0.4" description="Mosquitto and OwnTracks Recorder" MAINTAINER Jan-Piet Mens -RUN apt-get update && apt-get install -y wget && \ - wget -q -O /tmp/owntracks.gpg.key http://repo.owntracks.org/repo.owntracks.org.gpg.key && \ - apt-key add /tmp/owntracks.gpg.key -RUN wget -q -O /tmp/mosquitto.gpg.key http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key && \ - apt-key add /tmp/mosquitto.gpg.key -RUN apt-get install -y software-properties-common && \ +ADD http://repo.owntracks.org/repo.owntracks.org.gpg.key /tmp/owntracks.gpg.key +ADD http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key /tmp/mosquitto.gpg.key + +RUN apt-key add /tmp/owntracks.gpg.key && \ + apt-key add /tmp/mosquitto.gpg.key && \ + apt-get update && \ + apt-get install -y software-properties-common net-tools && \ apt-add-repository 'deb http://repo.owntracks.org/debian jessie main' && \ - apt-add-repository 'deb http://repo.mosquitto.org/debian jessie main' && \ + apt-add-repository 'deb http://repo.mosquitto.org/debian jessie main' && \ apt-get update && \ apt-get install -y \ libmosquitto1 \ @@ -20,21 +21,29 @@ RUN apt-get install -y software-properties-common && \ mosquitto-clients \ supervisor \ ot-recorder \ + curl \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # data volume VOLUME /owntracks + COPY ot-recorder.default /etc/default/ot-recorder -RUN mkdir -p /var/log/supervisor && \ - mkdir -p -m 775 /owntracks/recorder/store && \ - chown -R owntracks:owntracks /owntracks + COPY launcher.sh /usr/local/sbin/launcher.sh COPY generate-CA.sh /usr/local/sbin/generate-CA.sh -RUN chmod 755 /usr/local/sbin/launcher.sh /usr/local/sbin/generate-CA.sh + COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY mosquitto.conf mosquitto.acl /etc/mosquitto/ +COPY recorder-health.sh /usr/local/sbin/recorder-health.sh +HEALTHCHECK CMD /usr/local/sbin/recorder-health.sh + +RUN mkdir -p /var/log/supervisor && \ + mkdir -p -m 775 /owntracks/recorder/store && \ + chown -R owntracks:owntracks /owntracks && \ + chmod 755 /usr/local/sbin/launcher.sh /usr/local/sbin/generate-CA.sh /usr/local/sbin/recorder-health.sh + EXPOSE 1883 8883 8083 CMD ["/usr/local/sbin/launcher.sh"] diff --git a/Dockerfile.armhf b/Dockerfile.armhf index f43dfc3..4ed00a7 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -2,11 +2,15 @@ FROM armhf/debian:jessie LABEL version="0.4" description="Mosquitto and OwnTracks Recorder" MAINTAINER Jan-Piet Mens -RUN apt-get update && apt-get install -y wget && \ - wget -q -O /tmp/owntracks.gpg.key http://repo.owntracks.org/repo.owntracks.org.gpg.key && \ - apt-key add /tmp/owntracks.gpg.key -RUN apt-get install -y software-properties-common && \ +ADD http://repo.owntracks.org/repo.owntracks.org.gpg.key /tmp/owntracks.gpg.key +ADD http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key /tmp/mosquitto.gpg.key + +RUN apt-key add /tmp/owntracks.gpg.key && \ + apt-key add /tmp/mosquitto.gpg.key && \ + apt-get update && \ + apt-get install -y software-properties-common net-tools && \ apt-add-repository 'deb http://repo.owntracks.org/debian jessie main' && \ + apt-add-repository 'deb http://repo.mosquitto.org/debian jessie main' && \ apt-get update && \ apt-get install -y \ libmosquitto1 \ @@ -17,21 +21,29 @@ RUN apt-get install -y software-properties-common && \ mosquitto-clients \ supervisor \ ot-recorder \ + curl \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # data volume VOLUME /owntracks + COPY ot-recorder.default /etc/default/ot-recorder -RUN mkdir -p /var/log/supervisor && \ - mkdir -p -m 775 /owntracks/recorder/store && \ - chown -R owntracks:owntracks /owntracks + COPY launcher.sh /usr/local/sbin/launcher.sh COPY generate-CA.sh /usr/local/sbin/generate-CA.sh -RUN chmod 755 /usr/local/sbin/launcher.sh /usr/local/sbin/generate-CA.sh + COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY mosquitto.conf mosquitto.acl /etc/mosquitto/ +COPY recorder-health.sh /usr/local/sbin/recorder-health.sh +HEALTHCHECK CMD /usr/local/sbin/recorder-health.sh + +RUN mkdir -p /var/log/supervisor && \ + mkdir -p -m 775 /owntracks/recorder/store && \ + chown -R owntracks:owntracks /owntracks && \ + chmod 755 /usr/local/sbin/launcher.sh /usr/local/sbin/generate-CA.sh /usr/local/sbin/recorder-health.sh + EXPOSE 1883 8883 8083 CMD ["/usr/local/sbin/launcher.sh"] diff --git a/recorder-health.sh b/recorder-health.sh new file mode 100644 index 0000000..3390fcb --- /dev/null +++ b/recorder-health.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +addr=`hostname` +port=8083 + +epoch=$(date +%s) + +location=$(cat < /dev/null + +# obtain tst of ping/ping's last location +ret_epoch=$(curl -sSL http://${addr}:${port}/api/0/last --data "user=ping&device=ping" | + env python -c 'import sys, json; print json.load(sys.stdin)[0]["tst"];') + +if [ $epoch -ne $ret_epoch ]; then + echo PANIC $epoch $ret_epoch + exit 1 +else + echo OK + exit 0 +fi +