From fcf76aae287f6c14c2d8d6527b8acc3fb202d5d4 Mon Sep 17 00:00:00 2001 From: GP8x Date: Sun, 20 Aug 2017 13:32:22 +0100 Subject: [PATCH 1/5] set max paho-mqtt version to fix pip installing from virtualenv --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e16a4d2..f5a7a66 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -paho-mqtt>=1.2 +paho-mqtt>=1.2,<1.3 configparser>=3.5.0 humanfriendly>=2.1 From 0a2fa505744f568c8acab0a06c1c022db87e55d5 Mon Sep 17 00:00:00 2001 From: GP8x Date: Sun, 20 Aug 2017 14:58:04 +0100 Subject: [PATCH 2/5] update and minify Docker image --- Dockerfile | 38 +++++++++++++++----------------------- requirements.txt | 2 +- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9bc49f2..d20fad5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,21 @@ -FROM alpine:3.5 +FROM alpine:3.6 MAINTAINER Nat Morris -RUN apk add --update \ - python \ - python-dev \ - py-pip \ - build-base \ - && pip install virtualenv - -#ENV LIBRARY_PATH=/lib:/usr/lib -#RUN ln -s /usr/include/locale.h /usr/include/xlocale.h - -# Copy requirements before app so we can cache PIP dependencies on their own -RUN mkdir /app -COPY requirements.txt /app/requirements.txt -WORKDIR /app -RUN virtualenv /env && /env/bin/pip install -r /app/requirements.txt - +COPY requirements.txt /app/ COPY aaisp-to-mqtt.py /app/ +WORKDIR /app -RUN rm -rf \ - /root/.cache \ - /tmp/* -RUN rm -rf /var/cache/apk/* +RUN apk add --no-cache \ + python \ + ca-certificates \ + && apk add --no-cache --virtual .build-deps \ + py-pip \ + && pip install -r requirements.txt \ + && apk del .build-deps \ + && addgroup -g 1000 aaisp \ + && adduser -u 1000 -G aaisp -s /bin/sh -D aaisp \ + && chown aaisp:aaisp -R /app EXPOSE 8080/tcp - -CMD ["/env/bin/python", "/app/aaisp-to-mqtt.py", "-c /config/config.cfg"] +USER aaisp +CMD ["python", "aaisp-to-mqtt.py", "config.cfg"] diff --git a/requirements.txt b/requirements.txt index f5a7a66..e16a4d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -paho-mqtt>=1.2,<1.3 +paho-mqtt>=1.2 configparser>=3.5.0 humanfriendly>=2.1 From 5e80b4ccc78b79f469e1db7a195c0be44fbe7c09 Mon Sep 17 00:00:00 2001 From: GP8x Date: Sun, 20 Aug 2017 16:27:07 +0100 Subject: [PATCH 3/5] use crond in Docker container to trigger AAISP MQTT script hourly --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index d20fad5..64441eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,11 +11,11 @@ RUN apk add --no-cache \ && apk add --no-cache --virtual .build-deps \ py-pip \ && pip install -r requirements.txt \ - && apk del .build-deps \ + && apk del --no-cache .build-deps \ && addgroup -g 1000 aaisp \ && adduser -u 1000 -G aaisp -s /bin/sh -D aaisp \ - && chown aaisp:aaisp -R /app + && chown aaisp:aaisp -R /app \ + && echo "0 * * * * /usr/bin/python /app/aaisp-to-mqtt.py /app/config.cfg" | crontab -u aaisp - EXPOSE 8080/tcp -USER aaisp -CMD ["python", "aaisp-to-mqtt.py", "config.cfg"] +CMD ["/usr/sbin/crond", "-f", "-d", "8"] From f800ff574ef3cce483884251a8626906180a7169 Mon Sep 17 00:00:00 2001 From: GP8x Date: Sun, 20 Aug 2017 16:31:35 +0100 Subject: [PATCH 4/5] added Docker instructions to README --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index f18922f..331ae17 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,20 @@ aaisp/login/gb12@a.1/syncrate/up 1205000 aaisp/login/gb12@a.1/syncrate/up/human 1.21 MB ``` +## Docker ## + +Build the Docker image with: + +``` +docker build -t aaisp-mqtt . +``` + +Run the container with a volume mounted config file: + +``` +docker run -d -v :/app/config.cfg --name AAISPmqtt aaisp-mqtt +``` + ## Setup ## TODO From b00adda3d16734deccfcde1815f6aff7ca30ffcb Mon Sep 17 00:00:00 2001 From: GP8x Date: Sun, 20 Aug 2017 16:42:23 +0100 Subject: [PATCH 5/5] remove unneeded Docker port expose. --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 64441eb..6261028 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,5 +17,4 @@ RUN apk add --no-cache \ && chown aaisp:aaisp -R /app \ && echo "0 * * * * /usr/bin/python /app/aaisp-to-mqtt.py /app/config.cfg" | crontab -u aaisp - -EXPOSE 8080/tcp CMD ["/usr/sbin/crond", "-f", "-d", "8"]