From 5236002f777aa140799e5e0cef4d026b67fe79b7 Mon Sep 17 00:00:00 2001 From: john30 Date: Sun, 29 Jan 2017 16:52:01 +0100 Subject: [PATCH] first version of docker support --- contrib/docker/build.sh | 15 ++++++++++++++ contrib/docker/buildenv/Dockerfile | 6 ++++++ contrib/docker/runtime/Dockerfile | 22 +++++++++++++++++++++ contrib/docker/runtime/docker-entrypoint.sh | 8 ++++++++ contrib/docker/update.sh | 5 +++++ 5 files changed, 56 insertions(+) create mode 100755 contrib/docker/build.sh create mode 100644 contrib/docker/buildenv/Dockerfile create mode 100644 contrib/docker/runtime/Dockerfile create mode 100755 contrib/docker/runtime/docker-entrypoint.sh create mode 100755 contrib/docker/update.sh diff --git a/contrib/docker/build.sh b/contrib/docker/build.sh new file mode 100755 index 00000000..adf33c44 --- /dev/null +++ b/contrib/docker/build.sh @@ -0,0 +1,15 @@ +#!/bin/sh +set -e +(cd buildenv && docker build -t ebusd-buildenv .) +docker run --rm -it -v `pwd`/../..:/build ebusd-buildenv ./make_debian.sh +export EBUSD_VERSION=`cat ../../VERSION` +export EBUSD_ARCH=`docker version|grep -i "Arch[^:]*server"|head -n 1|sed -e 's#^.*/##'` +cp -a ../../ebusd-${EBUSD_VERSION}_${EBUSD_ARCH}.deb runtime/ +(cd runtime && docker build -t ebusd .) +echo "docker image created." +echo +echo "to run it interactively on serial device /dev/ttyUSB1:" +echo "docker run --rm -it --device=/dev/ttyUSB1:/dev/ttyUSB0 -p 127.0.0.1:8888:8888 ebusd" +echo +echo "to start it in background on serial device /dev/ttyUSB1:" +echo "docker run device=/dev/ttyUSB1:/dev/ttyUSB0 -p 127.0.0.1:8888:8888 ebusd" diff --git a/contrib/docker/buildenv/Dockerfile b/contrib/docker/buildenv/Dockerfile new file mode 100644 index 00000000..2f441ac2 --- /dev/null +++ b/contrib/docker/buildenv/Dockerfile @@ -0,0 +1,6 @@ +FROM debian +RUN apt-get update +RUN apt-get install -y git autoconf automake g++ make + +WORKDIR /build +CMD ["/bin/bash"] \ No newline at end of file diff --git a/contrib/docker/runtime/Dockerfile b/contrib/docker/runtime/Dockerfile new file mode 100644 index 00000000..8fd62c21 --- /dev/null +++ b/contrib/docker/runtime/Dockerfile @@ -0,0 +1,22 @@ +FROM debian + +RUN apt-get update +RUN apt-get install -y curl + +LABEL maintainer "ebusd@ebusd.eu" + +RUN mkdir /etc/ebusd \ + && curl -SL https://github.com/john30/ebusd-configuration/archive/master.tar.gz \ + | tar xz --strip-components=3 -C /etc/ebusd ebusd-configuration-master/ebusd-2.1.x/de + +ENV EBUSD_VERSION 3.0pre +ENV EBUSD_ARCH amd64 +COPY ebusd-${EBUSD_VERSION}_${EBUSD_ARCH}.deb ebusd.deb + +RUN dpkg -i ebusd.deb + +EXPOSE 8888 + +COPY docker-entrypoint.sh / +ENTRYPOINT ["/docker-entrypoint.sh"] +CMD ["-f", "--scanconfig"] \ No newline at end of file diff --git a/contrib/docker/runtime/docker-entrypoint.sh b/contrib/docker/runtime/docker-entrypoint.sh new file mode 100755 index 00000000..142a9a26 --- /dev/null +++ b/contrib/docker/runtime/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +if [ "${1#-}" != "$1" ]; then + set -- ebusd "$@" +fi + +exec "$@" \ No newline at end of file diff --git a/contrib/docker/update.sh b/contrib/docker/update.sh new file mode 100755 index 00000000..c47e512e --- /dev/null +++ b/contrib/docker/update.sh @@ -0,0 +1,5 @@ +#!/bin/sh +set -e +export EBUSD_VERSION=`cat ../../VERSION` +export EBUSD_ARCH=`docker version|grep -i "Arch[^:]*server"|head -n 1|sed -e 's#^.*/##'` +sed -i -e "s#^ENV EBUSD_VERSION .*\$#ENV EBUSD_VERSION ${EBUSD_VERSION}#" -e "s#^ENV EBUSD_ARCH .*\$#ENV EBUSD_ARCH ${EBUSD_ARCH}#" runtime/Dockerfile