This commit is contained in:
Brandon
2019-08-24 07:18:00 -05:00
parent 736834824c
commit c72deee4d5
6 changed files with 44 additions and 46 deletions

View File

@@ -8,9 +8,8 @@ WORKDIR /mopidy
RUN \ RUN \
echo "* Updating Package Repositories" \ echo "* Updating Package Repositories" \
&& echo 'http://dl-cdn.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories \ && echo 'http://dl-cdn.alpinelinux.org/alpine/v3.9/main' >> /etc/apk/repositories \
&& echo 'http://dl-cdn.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories \ && echo 'http://dl-cdn.alpinelinux.org/alpine/v3.9/community' >> /etc/apk/repositories \
&& echo 'http://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \
&& apk upgrade --no-cache \ && apk upgrade --no-cache \
&& pip install --upgrade pip \ && pip install --upgrade pip \
&& echo "* Installing Runtime Packages" \ && echo "* Installing Runtime Packages" \
@@ -31,8 +30,8 @@ RUN \
py-gobject \ py-gobject \
mailcap \ mailcap \
icecast \ icecast \
snapcast-server \
gstreamer \ gstreamer \
gstreamer-tools \
gst-plugins-base \ gst-plugins-base \
gst-plugins-good \ gst-plugins-good \
gst-plugins-ugly \ gst-plugins-ugly \
@@ -56,12 +55,6 @@ RUN \
&& adduser -h /mopidy -s /bin/sh -D -G mopidy -u ${PUID} mopidy \ && 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 "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" \ && echo "* Cleaning up" \
&& apk --purge del \
libxml2-dev \
libxslt-dev \
libffi-dev \
openssl-dev \
python2-dev \
&& rm -rf /var/cache/apk/* \ && rm -rf /var/cache/apk/* \
&& rm -rf /tmp/* \ && rm -rf /tmp/* \
&& echo "* Ready to start Mopidy" \ && echo "* Ready to start Mopidy" \
@@ -70,8 +63,8 @@ RUN \
COPY root/ / COPY root/ /
RUN chmod +x /usr/local/bin/run.sh RUN chmod +x /usr/local/bin/run.sh
RUN chmod +x /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh
EXPOSE 1704 1705 6600 6680 8000 EXPOSE 6600 6680 8000
VOLUME /data /music /playlists VOLUME /data /music
LABEL description "Open source media server" LABEL description "Open source media server"

View File

@@ -13,10 +13,9 @@ $ docker run -d \
--name=<container name> \ --name=<container name> \
-p 6600:6600 \ -p 6600:6600 \
-p 6680:6680 \ -p 6680:6680 \
-p 5555:5555/udp \ -p 8000:8000 \
-v <path for data files>:/data \ -v <path for data files>:/data \
-v <path for music files>:/music \ -v <path for music files>:/music \
-v <path for playlist files>:/playlists \
log1x/mopidy-iris log1x/mopidy-iris
``` ```

View File

@@ -1,25 +1,34 @@
<icecast> <icecast>
<hostname>icecast.local</hostname> <hostname>localhost</hostname>
<location>local</location> <location>docker</location>
<admin>noreply@icecast.local</admin> <admin>noreply@icecast.local</admin>
<fileserve>1</fileserve> <fileserve>1</fileserve>
<limits> <limits>
<burst-on-connect>0</burst-on-connect> <clients>5</clients>
<sources>2</sources>
<queue-size>1280000</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>1</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits> </limits>
<authentication> <authentication>
<source-password>hackme</source-password> <source-password>hackme</source-password>
<relay-password>hackme</relay-password> <relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> <admin-password>hackme</admin-password>
</authentication> </authentication>
<listen-socket> <listen-socket>
<port>8000</port> <port>8000</port>
<bind-address>0.0.0.0</bind-address>
</listen-socket> </listen-socket>
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
</http-headers>
<mount> <mount>
<mount-name>/mopidy</mount-name> <mount-name>/mopidy</mount-name>
<fallback-mount>/silence.mp3</fallback-mount> <fallback-mount>/silence.mp3</fallback-mount>
@@ -27,11 +36,12 @@
</mount> </mount>
<paths> <paths>
<basedir>/data/icecast</basedir>
<logdir>/data/icecast/logs</logdir> <logdir>/data/icecast/logs</logdir>
<webroot>/data/icecast/web</webroot> <webroot>/data/icecast/web</webroot>
<adminroot>/data/icecast/admin</adminroot> <adminroot>/data/icecast/admin</adminroot>
<alias source="/" destination="/status.xsl"/> <alias source="/" destination="/mopidy"/>
</paths> </paths>
<logging> <logging>

View File

@@ -2,12 +2,9 @@
data_dir = /data data_dir = /data
config_dir = /data/.config config_dir = /data/.config
cache_dir = /data/.cache cache_dir = /data/.cache
max_tracklist_length = 10000
[audio] [audio]
mixer = software output = lamemp3enc bitrate=320 ! shout2send async=false sync=true mount=mopidy
mixer_volume = 100
output = lamemp3enc bitrate=320 ! shout2send mount=mopidy ip=0.0.0.0 port=8000 password=hackme
[file] [file]
media_dirs = /music|Music media_dirs = /music|Music
@@ -18,17 +15,32 @@ excluded_file_extensions =
.gif .gif
.bmp .bmp
.m4a .m4a
.itdb
.itl
[m3u] [m3u]
enabled = false enabled = false
[stream]
enabled = false
[local] [local]
library = images library = images
media_dir = /music media_dir = /music
scan_flush_threshold = 100 scan_flush_threshold = 100
excluded_file_extensions =
.jpg
.jpeg
.png
.gif
.bmp
.m4a
.itdb
.itl
[local-images] [local-images]
library = sqlite library = sqlite
image_dir = /data/.images
[http] [http]
hostname = 0.0.0.0 hostname = 0.0.0.0
@@ -37,9 +49,6 @@ hostname = 0.0.0.0
hostname = 0.0.0.0 hostname = 0.0.0.0
[iris] [iris]
snapcast_enabled = true
snapcast_host = 0.0.0.0
snapcast_port = 1705
country = US country = US
locale = en_US locale = en_US

View File

@@ -2,29 +2,17 @@
set -euo pipefail set -euo pipefail
if [ ! -r /data/.config ]; then [ ! -r /data/.config ] && mkdir -p /data/.config
mkdir -p /data/.config [ ! -r /data/.images ] && mkdir -p /data/.images
fi [ ! -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 if [ ! -r /data/icecast/web ] || [ ! -r /data/icecast/admin ] || [ ! -r /data/icecast/logs ]; 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
mkdir -p /data/icecast/web /data/icecast/admin /data/icecast/logs mkdir -p /data/icecast/web /data/icecast/admin /data/icecast/logs
cp -r /usr/share/icecast /data/icecast cp -r /usr/share/icecast /data/icecast
cp /defaults/silence.mp3 /data/icecast/web/silence.mp3 cp /defaults/silence.mp3 /data/icecast/web/silence.mp3
fi fi
if [ ! -r /tmp/snapfifo ]; then chown -R mopidy:mopidy /data
touch /tmp/snapfifo
fi
chown -R mopidy:mopidy /data /tmp/snapfifo
su-exec mopidy mopidy --config /data/.config/mopidy.conf local scan su-exec mopidy mopidy --config /data/.config/mopidy.conf local scan
exec "${@}" exec "${@}"

View File

@@ -1,7 +1,6 @@
#!/bin/sh #!/bin/sh
trap "kill $PID" HUP INT TERM 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 icecast -c /data/.config/icecast.xml -b &
su-exec mopidy mopidy --config /data/.config/mopidy.conf "${@}" & su-exec mopidy mopidy --config /data/.config/mopidy.conf "${@}" &
PID=$! PID=$!