From ed4c002e7c4e2e3cb009feb79f521f873d04c9ed Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Wed, 23 Dec 2015 07:11:54 +0100 Subject: [PATCH] Initial commit. --- Dockerfile | 22 ++++++++++++++++++++++ dpmaster-wrapper.sh | 24 ++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Dockerfile create mode 100755 dpmaster-wrapper.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..61f625f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM icedream/debian-armhf:stable + +ENV DPMASTER_VERSION "1c1bd46a78d41726f3c1d13cc27e41d2e7620e19" + +RUN apt-get update &&\ + DEBIAN_FRONTEND=noninteractive \ + apt-get install --no-install-recommends -y wget ca-certificates tar make gcc libc6-dev libc6 &&\ + apt-mark auto wget ca-certificates tar make gcc libc6-dev &&\ + wget -O- https://github.com/kphillisjr/dpmaster/archive/${DPMASTER_VERSION}.tar.gz |\ + tar xz -C /tmp &&\ + cd /tmp/dpmaster-${DPMASTER_VERSION}/src &&\ + make UNIX_EXE=/usr/local/bin/dpmaster release &&\ + cd / &&\ + adduser --system -u 999 --no-create-home dpmaster &&\ + apt-get autoremove --purge -y &&\ + apt-get clean &&\ + rm -rf /var/tmp/* /tmp/* /var/lib/apt/lists/* + +EXPOSE 27950 +USER 999 +COPY dpmaster-wrapper.sh /usr/local/bin/dpmaster-wrapper +CMD ["dpmaster-wrapper"] diff --git a/dpmaster-wrapper.sh b/dpmaster-wrapper.sh new file mode 100755 index 0000000..ce9e4d6 --- /dev/null +++ b/dpmaster-wrapper.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# This script makes sure dpmaster exits quickly by reliably proxying +# the SIGTERM coming from Docker on container shutdown. + +# trap the sigterm signal +_term() { + # send termination request and wait for process to exit + kill "$child" + wait "$child" + + # error code 143 means exit caused by bash's kill request + retval=$? + [ "$retval" -eq 143 ] && retval=0 + + # any other error code should be forwarded as is + exit $retval +} +trap _term SIGTERM + +# start dpmaster +dpmaster & +child=$! +wait "$child"