diff --git a/Dockerfile b/Dockerfile index b2bf565..c151787 100644 --- a/Dockerfile +++ b/Dockerfile @@ -54,10 +54,11 @@ RUN \ && sleep 1 COPY root/ / -RUN chmod +x /usr/local/bin/run.sh +RUN chmod +x /usr/local/bin/{run,entrypoint}.sh EXPOSE 6600 6680 8000 5555/udp VOLUME /data /music /playlists LABEL description "Open source media server" +ENTRYPOINT ["entrypoint.sh"] CMD ["run.sh"] diff --git a/root/defaults/icecast.xml b/root/defaults/icecast.xml index 2c8ca9c..2e50946 100644 --- a/root/defaults/icecast.xml +++ b/root/defaults/icecast.xml @@ -20,9 +20,9 @@ 3ds6ksvNGm6WeccXrd - music.log1x.cloud - Central, USA - noreply@log1x.cloud + icecast.local + unknown + noreply@icecast.local 1 @@ -36,22 +36,19 @@ 1 - - /data/.config/icecast2 - /data/logs/icecast2 - /data/.config/icecast2/web - /data/.config/icecast2/admin + + /usr/share/icecast + /data/logs/icecast + /usr/share/icecast/web + /usr/share/icecast/admin - - access.log - error.log - 3 - 10000 - - 0 + + mopidy + mopidy + diff --git a/root/usr/local/bin/entrypoint.sh b/root/usr/local/bin/entrypoint.sh new file mode 100644 index 0000000..b94f9ab --- /dev/null +++ b/root/usr/local/bin/entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -euo pipefail + +if [ ! -r /data/.config/mopidy.conf ]; then + mkdir -p /data/.config + cp /defaults/mopidy.conf /data/.config +fi + +if [ ! -r /data/.config/icecast.xml ]; then + mkdir -p /data/.config + cp /defaults/icecast.xml /data/.config +fi + +if [ ! -r /data/logs ]; then + mkdir -p /data/logs/mopidy + mkdir -p /data/logs/icecast +fi + +chown -R mopidy:mopidy /data + +su-exec mopidy mopidy --config /data/.config/mopidy.conf local scan +exec "${@}" diff --git a/root/usr/local/bin/run.sh b/root/usr/local/bin/run.sh index aedb091..b4192d8 100755 --- a/root/usr/local/bin/run.sh +++ b/root/usr/local/bin/run.sh @@ -1,22 +1,7 @@ #!/bin/sh -if [ ! -r /data/.config/mopidy.conf ]; then - mkdir -p /data/.config && cp /defaults/mopidy.conf /data/.config && chown -R mopidy:mopidy /data -fi - -if [ ! -r /data/.config/icecast.xml ]; then - mkdir -p /data/.config && cp /defaults/icecast.xml /data/.config && chown -R mopidy:mopidy /data -fi - -if [ ! -r /data/.config/icecast2/web/silence.mp3 ]; then - mkdir -p /data/.config/icecast2/web && cp /defaults/silence.mp3 /data/.config/icecast2/web && chown -R mopidy:mopidy /data -fi - -if [ ! -r /data/logs ]; then - mkdir -p /data/logs/mopidy /data/logs/icecast2 && chown -R mopidy:mopidy /data -fi trap "kill $PID" HUP INT TERM -su-exec mopidy icecast -c /data/.config/icecast.xml -b & +icecast -c /data/.config/icecast.xml -b & su-exec mopidy mopidy --config /data/.config/mopidy.conf "${@}" & PID=$! wait $PID diff --git a/root/defaults/silence.mp3 b/root/usr/share/icecast/web/silence.mp3 similarity index 100% rename from root/defaults/silence.mp3 rename to root/usr/share/icecast/web/silence.mp3