Reworked Dockerfiles for smaller Images, Healthcheck added (#6)

This commit is contained in:
Giovanni Angoli
2016-10-30 13:40:14 +01:00
committed by GitHub
parent f7600781ee
commit 868a34cffb
3 changed files with 73 additions and 19 deletions

View File

@@ -2,14 +2,15 @@ FROM debian:jessie
LABEL version="0.4" description="Mosquitto and OwnTracks Recorder"
MAINTAINER Jan-Piet Mens <jpmens@gmail.com>
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"]

View File

@@ -2,11 +2,15 @@ FROM armhf/debian:jessie
LABEL version="0.4" description="Mosquitto and OwnTracks Recorder"
MAINTAINER Jan-Piet Mens <jpmens@gmail.com>
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"]

33
recorder-health.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/sh
addr=`hostname`
port=8083
epoch=$(date +%s)
location=$(cat <<EOJSON
{
"_type": "location",
"tid": "pp",
"lat": 51.47879,
"lon": -0.010677,
"tst": $epoch
}
EOJSON
)
# POST location to ping/ping, ignoring output
curl -sSL --data "${location}" "http://${addr}:${port}/pub?u=ping&d=ping" > /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