From d2701dd0e904287ddad1f5c5f0759735928a3a64 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Sun, 9 Apr 2017 22:41:10 +0200 Subject: [PATCH] Adding Docker files. --- .dockerignore | 6 ++++++ Dockerfile | 50 ++++++++++++++++++++++++++++++++++++++++++++ docker-entrypoint.sh | 21 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-entrypoint.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..27df8c0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +*.md + +.git* + +Dockerfile +.dockerignore diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5cdabc5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,50 @@ +FROM frolvlad/alpine-glibc:alpine-3.5_glibc-2.24 + +ARG TS3SERVER_URL="http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.13.6/teamspeak3-server_linux_amd64-3.0.13.6.tar.bz2" +ARG TS3SERVER_SHA384="c126cb43098c3ccd8f0eaaa871cc128ecda21261a1a862815ffc5bd6e8ed8dd45dff862a222ccfebe670a6dd5df4dfbb" + +ADD ${TS3SERVER_URL} "/ts3server.tar.bz2" +RUN \ + apk --no-cache add --virtual .build-deps \ + coreutils \ + tar \ + && \ +\ + echo "Validating checksum..." && \ + TS3SERVER_ACTUAL_SHA384="$(sha384sum /ts3server.tar.bz2 | awk '{print $1}')" && \ + if [ "${TS3SERVER_ACTUAL_SHA384}" != "${TS3SERVER_SHA384}" ]; then echo "Invalid checksum: ${TS3SERVER_ACTUAL_SHA384} != ${TS3SERVER_SHA384}" >&2; exit 1; fi && \ +\ + mkdir -vp /opt/teamspeak3 && \ + tar -v -C /opt/teamspeak3 -xf /ts3server.tar.bz2 --strip 1 && \ +\ + rm -vr \ + /ts3server.tar.bz2 \ + && \ + rm -vrf \ + /opt/teamspeak3/*.sh \ + /opt/teamspeak3/CHANGELOG \ + /opt/teamspeak3/doc \ + /opt/teamspeak3/redist \ + /opt/teamspeak3/serverquerydocs \ + /opt/teamspeak3/tsdns \ + /tmp/* \ + /var/tmp/* \ + && \ + ls -lAh /opt/teamspeak3 && \ + apk --no-cache del .build-deps + +COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint +RUN chmod +x /usr/local/bin/docker-entrypoint + +RUN \ + for path in \ + files \ + logs \ + query_ip_blacklist.txt \ + query_ip_whitelist.txt \ + ts3server.sqlitedb; \ + do \ + ln -vsf "/data/${path}" "/opt/teamspeak3/${path}"; \ + done + +ENTRYPOINT ["docker-entrypoint"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..48b3e60 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,21 @@ +#!/bin/sh -e + +# files and directories that should exist beforehand +mkdir -p \ + /data/files \ + /data/logs +touch \ + /data/query_ip_blacklist.txt \ + /data/query_ip_whitelist.txt \ + /data/ts3server.sqlitedb + +LD_LIBRARY_PATH="/opt/teamspeak3:${LD_LIBRARY_PATH}" +export LD_LIBRARY_PATH + +/opt/teamspeak3/ts3server "$@" & +TS3SERVER_PID=$! + +trap 'kill -2 ${TS3SERVER_PID}' INT +trap 'kill -15 ${TS3SERVER_PID}' TERM + +wait ${TS3SERVER_PID}