commit 842f0edc0e04e102c0b1b3116cd4a43e86aa04a2 Author: Carl Kittelberger Date: Wed Dec 23 07:24:37 2015 +0100 Initial commit. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..14a7c54 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM debian: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"