mirror of
https://bitbucket.org/shim_/docker-teamspeak.git
synced 2018-10-04 01:51:57 +02:00
initial commit
This commit is contained in:
24
Dockerfile
Normal file
24
Dockerfile
Normal file
@@ -0,0 +1,24 @@
|
||||
FROM frolvlad/alpine-glibc
|
||||
|
||||
ENV TS_VERSION=3.0.12.4
|
||||
ENV ARCH=amd64
|
||||
ENV CHECKSUM=6bb0e8c8974fa5739b90e1806687128342b3ab36510944f576942e67df7a1bd9
|
||||
|
||||
ENV TS3DB_TYPE=SQLITE
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache bash wget tar coreutils
|
||||
RUN wget --no-check-certificate -O /usr/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.0.1/dumb-init_1.0.1_amd64
|
||||
|
||||
RUN chmod +x /usr/bin/dumb-init && \
|
||||
chmod +r /etc/murmur.conf && \
|
||||
mkdir -p /tpl
|
||||
|
||||
COPY init.sh /usr/bin/init.sh
|
||||
COPY ts3server.ini /tpl/ts3server.ini
|
||||
COPY ts3db_mysql.ini /tpl/ts3db_mysql.ini
|
||||
|
||||
VOLUME ["/opt/teamspeak3"]
|
||||
EXPOSE 10011 9987/udp
|
||||
|
||||
CMD ["/usr/bin/dumb-init","/usr/bin/init.sh"]
|
71
init.sh
Executable file
71
init.sh
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
|
||||
function write_config {
|
||||
echo "$1"'='"$2" >> $CONFIG
|
||||
}
|
||||
|
||||
#value key alt
|
||||
function write_config_if_else {
|
||||
if [ ! -z "$1" ]; then
|
||||
write_config "$2" "$1"
|
||||
else
|
||||
if [ ! -z "$3" ]; then write_config "$2" "$3"; fi
|
||||
fi
|
||||
}
|
||||
|
||||
function wait_for_mysql {
|
||||
if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then
|
||||
PORT=3306
|
||||
if [ ! -z "$TS3DB_PORT" ] ; then PORT="$TS3DB_PORT" ;fi
|
||||
while ! nc -q 1 $TS3DB_HOST $PORT < /dev/null; do sleep 3; done
|
||||
fi
|
||||
sleep 3
|
||||
}
|
||||
|
||||
function main_config {
|
||||
CONFIG="$CONF_DIR/ts3server.ini"
|
||||
cp /tpl/$(basename $CONFIG) $CONFIG
|
||||
if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then
|
||||
write_config 'dbplugin' 'ts3db_mysql'
|
||||
write_config 'dbpluginparameter' "$CONF_DIR/ts3db_mysql.ini"
|
||||
fi
|
||||
}
|
||||
|
||||
function db_config {
|
||||
CONFIG="$CONF_DIR/ts3db_mysql.ini"
|
||||
if [ ! -z "$TS3DB_TYPE" ] && [ "$TS3DB_TYPE" == "MYSQL" ]; then
|
||||
cp /tpl/$(basename $CONFIG) $CONFIG
|
||||
write_config_if_else $TS3DB_HOST 'localhost' 'host'
|
||||
write_config_if_else $TS3DB_PORT '3306' 'port'
|
||||
write_config_if_else $TS3DB_USER 'root' 'username'
|
||||
write_config_if_else $TS3DB_PASS '' 'password'
|
||||
write_config_if_else $TS3DB_NAME 'ts3' 'database'
|
||||
fi
|
||||
}
|
||||
|
||||
SERVER_DIR=/opt/teamspeak3
|
||||
CONF_DIR=$SERVER_DIR
|
||||
|
||||
if [ ! -d $SERVER_DIR ]; then
|
||||
echo Starting Initialization
|
||||
URL=http://dl.4players.de/ts/releases/$TS_VERSION/teamspeak3-server_linux_$ARCH-$TS_VERSION.tar.bz2
|
||||
TMPFILE=/tmp/server.tar.bz2
|
||||
wget $URL -O $TMPFILE
|
||||
if [ ! -z "$CHECKSUM" ]; then
|
||||
ACTUAL=$(sha256sum $TMPFILE | cut -d " " -f1)
|
||||
if [ "$ACTUAL" != "$CHECKSUM" ]; then
|
||||
echo "Checksum mismatch!"
|
||||
echo "set CHECKSUM to \"\" to ignore or"
|
||||
echo "update CHECKSUM according to https://www.teamspeak.com/downloads"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
tar -xjvf $TMPFILE -C /opt
|
||||
mv /opt/teamspeak3-server_linux_$ARCH /opt/teamspeak3
|
||||
rm -f $TMPFILE
|
||||
main_config
|
||||
db_config
|
||||
|
||||
fi
|
||||
wait_for_mysql
|
||||
$SERVER_DIR/ts3server_minimal_runscript.sh inifile=$CONF_DIR/ts3server.ini
|
2
ts3db_mysql.ini
Normal file
2
ts3db_mysql.ini
Normal file
@@ -0,0 +1,2 @@
|
||||
[config]
|
||||
socket=
|
12
ts3server.ini
Normal file
12
ts3server.ini
Normal file
@@ -0,0 +1,12 @@
|
||||
machine_id=
|
||||
default_voice_port=9987
|
||||
voice_ip=0.0.0.0
|
||||
liscensepath=
|
||||
filetransfer_port=30033
|
||||
filetransfer_ip=0.0.0.0
|
||||
query_port=10011
|
||||
query_ip=0.0.0.0
|
||||
dbsqlpath=sql/
|
||||
dbsqlcreatepath=create_mysql/
|
||||
logpath=logs
|
||||
logquerycommands=1
|
Reference in New Issue
Block a user