diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27d65a8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +addons/* +!addons/.placeholder +config/* +!config/.placeholder diff --git a/Dockerfile b/Dockerfile index ecc54bd..99d3500 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,32 @@ -FROM ubuntu:18.04 +FROM alpine:3.12 # Install required software and srb2kart -RUN apt update && apt install -y software-properties-common -RUN add-apt-repository -y ppa:kartkrew/srb2kart && apt update && apt install -y srb2kart +RUN apk add --no-cache build-base make cmake wget git gcc tar zlib zlib-dev curl curl-dev sdl2-dev # Setup volumes -VOLUME /config VOLUME /addons VOLUME /data +# clone (my patched) sources +RUN git clone https://github.com/vivlim/Kart-Public.git + +WORKDIR /Kart-Public + +RUN wget -qO- http://ppa.launchpad.net/kartkrew/srb2kart/ubuntu/pool/main/s/srb2kart-data/srb2kart-data_1.2-20200512035013.tar.xz | tar xJ +RUN sed -i 's%midi_disabled = digital_disabled = true;%digital_disabled = true;%' src/sdl/sdl_sound.c +RUN apk add --no-cache build-base +RUN cmake -B_build -DSRB2_CONFIG_HWRENDER=OFF -DSRB2_CONFIG_SDL2_USEMIXER=OFF -DSRB2_CONFIG_STATIC_OPENGL=OFF -DSRB2_CONFIG_USEASM=OFF -DSRB2_CONFIG_YASM=OFF -DSRB2_CONFIG_HAVE_GME=OFF -DSRB2_CONFIG_HAVE_PNG=OFF +RUN make -j`nproc` -C_build + # Symlink for config -RUN ln -sf /config/kartserv.cfg /usr/games/SRB2Kart/kartserv.cfg && ln -sf /addons /usr/games/SRB2Kart/addons +RUN ln -sf /config/kartserv.cfg /Kart-Public/kartserv.cfg && ln -sf /addons /Kart-Public/addons # Expose network port EXPOSE 5029/udp # Copy bash script and fix execute permission -COPY srb2kart.sh /usr/bin/srb2kart.sh -RUN chmod a+x /usr/bin/srb2kart.sh - -# Set working directory -WORKDIR /usr/games/SRB2Kart +COPY srb2kart.sh /srb2kart.sh +RUN chmod a+x /srb2kart.sh # Run script -ENTRYPOINT ["srb2kart.sh"] \ No newline at end of file +ENTRYPOINT ["/srb2kart.sh"] diff --git a/addons/.placeholder b/addons/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/config/.placeholder b/config/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/srb2kart.sh b/srb2kart.sh index ebd86ef..0246c73 100644 --- a/srb2kart.sh +++ b/srb2kart.sh @@ -1,13 +1,16 @@ -#!/bin/bash +#!/bin/sh -cd /usr/games/SRB2Kart || exit +EXTRA_FILES="$(ls /addons/*.kart) $(ls /addons/*.pk3)" +INITIAL_MAP=map11 -ADDONS=$(ls /addons) +mkdir -p /assets -if [ -z "$ADDONS" ]; then - /usr/games/SRB2Kart/srb2kart -dedicated -config kartserv.cfg -home /data -file bonuschars.kart$* - exit -fi +echo "Copying base assets to /wads" +cp -rv /Kart-Public/assets/installer/* /assets -# Intentional word splitting -/usr/games/SRB2Kart/srb2kart -dedicated -config kartserv.cfg -home /data $* -file $ADDONS -file bonuschars.kart +echo "Copying addons over base assets" +cp -rv /addons/* /assets + +echo "Launching with extra assets: bonuschars.kart $EXTRA_FILES" + +SRB2WADDIR=/assets /Kart-Public/_build/bin/srb2kart -dedicated -config /config/kartserv.cfg -home /data -file bonuschars.kart $EXTRA_FILES +map $INITIAL_MAP