diff --git a/Dockerfile b/Dockerfile index a67aa15..20ab9f8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,8 @@ WORKDIR /mopidy RUN \ echo "* Updating Package Repositories" \ - && echo 'http://dl-cdn.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories \ - && echo 'http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ - && echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \ + && echo 'http://dl-cdn.alpinelinux.org/alpine/v3.9/main' >> /etc/apk/repositories \ + && echo 'http://dl-cdn.alpinelinux.org/alpine/v3.9/community' >> /etc/apk/repositories \ && apk upgrade --no-cache \ && pip install --upgrade pip \ && echo "* Installing Runtime Packages" \ @@ -31,8 +30,8 @@ RUN \ py-gobject \ mailcap \ icecast \ - snapcast-server \ gstreamer \ + gstreamer-tools \ gst-plugins-base \ gst-plugins-good \ gst-plugins-ugly \ @@ -56,12 +55,6 @@ RUN \ && adduser -h /mopidy -s /bin/sh -D -G mopidy -u ${PUID} mopidy \ && echo "mopidy ALL=NOPASSWD: /usr/local/lib/pyenv/versions/2.7.16/lib/python2.7/site-packages/mopidy_iris/system.sh" >> /etc/sudoers \ && echo "* Cleaning up" \ - && apk --purge del \ - libxml2-dev \ - libxslt-dev \ - libffi-dev \ - openssl-dev \ - python2-dev \ && rm -rf /var/cache/apk/* \ && rm -rf /tmp/* \ && echo "* Ready to start Mopidy" \ @@ -70,8 +63,8 @@ RUN \ COPY root/ / RUN chmod +x /usr/local/bin/run.sh RUN chmod +x /usr/local/bin/entrypoint.sh -EXPOSE 1704 1705 6600 6680 8000 -VOLUME /data /music /playlists +EXPOSE 6600 6680 8000 +VOLUME /data /music LABEL description "Open source media server" diff --git a/README.md b/README.md index ec60b75..5fc2d75 100644 --- a/README.md +++ b/README.md @@ -13,10 +13,9 @@ $ docker run -d \ --name= \ -p 6600:6600 \ -p 6680:6680 \ - -p 5555:5555/udp \ + -p 8000:8000 \ -v :/data \ -v :/music \ - -v :/playlists \ log1x/mopidy-iris ``` diff --git a/root/defaults/icecast.xml b/root/defaults/icecast.xml index dbc68f5..674580f 100644 --- a/root/defaults/icecast.xml +++ b/root/defaults/icecast.xml @@ -1,25 +1,34 @@ - icecast.local - local + localhost + docker noreply@icecast.local 1 - 0 + 5 + 2 + 1280000 + 30 + 15 + 1 + 1 + 65535 hackme hackme - admin hackme 8000 - 0.0.0.0 + +
+ + /mopidy /silence.mp3 @@ -27,11 +36,12 @@ + /data/icecast /data/icecast/logs /data/icecast/web /data/icecast/admin - + diff --git a/root/defaults/mopidy.conf b/root/defaults/mopidy.conf index f463a58..5a5b0be 100755 --- a/root/defaults/mopidy.conf +++ b/root/defaults/mopidy.conf @@ -2,12 +2,9 @@ data_dir = /data config_dir = /data/.config cache_dir = /data/.cache -max_tracklist_length = 10000 [audio] -mixer = software -mixer_volume = 100 -output = lamemp3enc bitrate=320 ! shout2send mount=mopidy ip=0.0.0.0 port=8000 password=hackme +output = lamemp3enc bitrate=320 ! shout2send async=false sync=true mount=mopidy [file] media_dirs = /music|Music @@ -18,17 +15,32 @@ excluded_file_extensions = .gif .bmp .m4a + .itdb + .itl [m3u] enabled = false +[stream] +enabled = false + [local] library = images media_dir = /music scan_flush_threshold = 100 +excluded_file_extensions = + .jpg + .jpeg + .png + .gif + .bmp + .m4a + .itdb + .itl [local-images] library = sqlite +image_dir = /data/.images [http] hostname = 0.0.0.0 @@ -37,9 +49,6 @@ hostname = 0.0.0.0 hostname = 0.0.0.0 [iris] -snapcast_enabled = true -snapcast_host = 0.0.0.0 -snapcast_port = 1705 country = US locale = en_US diff --git a/root/usr/local/bin/entrypoint.sh b/root/usr/local/bin/entrypoint.sh index ccd5eff..947db03 100644 --- a/root/usr/local/bin/entrypoint.sh +++ b/root/usr/local/bin/entrypoint.sh @@ -2,29 +2,17 @@ set -euo pipefail -if [ ! -r /data/.config ]; then - mkdir -p /data/.config -fi +[ ! -r /data/.config ] && mkdir -p /data/.config +[ ! -r /data/.images ] && mkdir -p /data/.images +[ ! -r /data/.config/mopidy.conf ] && cp /defaults/mopidy.conf /data/.config +[ ! -r /data/.config/icecast.xml ] && cp /defaults/icecast.xml /data/.config -if [ ! -r /data/.config/mopidy.conf ]; then - cp /defaults/mopidy.conf /data/.config -fi - -if [ ! -r /data/.config/icecast.xml ]; then - cp /defaults/icecast.xml /data/.config -fi - -if [ ! -r /data/icecast/web ] || [ ! -r /data/icecast/admin ]; then +if [ ! -r /data/icecast/web ] || [ ! -r /data/icecast/admin ] || [ ! -r /data/icecast/logs ]; then mkdir -p /data/icecast/web /data/icecast/admin /data/icecast/logs cp -r /usr/share/icecast /data/icecast cp /defaults/silence.mp3 /data/icecast/web/silence.mp3 fi -if [ ! -r /tmp/snapfifo ]; then - touch /tmp/snapfifo -fi - -chown -R mopidy:mopidy /data /tmp/snapfifo - +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 9c0156c..99adaa9 100755 --- a/root/usr/local/bin/run.sh +++ b/root/usr/local/bin/run.sh @@ -1,7 +1,6 @@ #!/bin/sh trap "kill $PID" HUP INT TERM -su-exec mopidy snapserver -d -s pipe:///tmp/snapfifo?name=Mopidy&sampleformat=48000:16:2 & su-exec mopidy icecast -c /data/.config/icecast.xml -b & su-exec mopidy mopidy --config /data/.config/mopidy.conf "${@}" & PID=$!