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 \
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"

View File

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

View File

@@ -1,25 +1,34 @@
<icecast>
<hostname>icecast.local</hostname>
<location>local</location>
<hostname>localhost</hostname>
<location>docker</location>
<admin>noreply@icecast.local</admin>
<fileserve>1</fileserve>
<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>
<authentication>
<source-password>hackme</source-password>
<relay-password>hackme</relay-password>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<listen-socket>
<port>8000</port>
<bind-address>0.0.0.0</bind-address>
</listen-socket>
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
</http-headers>
<mount>
<mount-name>/mopidy</mount-name>
<fallback-mount>/silence.mp3</fallback-mount>
@@ -27,11 +36,12 @@
</mount>
<paths>
<basedir>/data/icecast</basedir>
<logdir>/data/icecast/logs</logdir>
<webroot>/data/icecast/web</webroot>
<adminroot>/data/icecast/admin</adminroot>
<alias source="/" destination="/status.xsl"/>
<alias source="/" destination="/mopidy"/>
</paths>
<logging>

View File

@@ -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

View File

@@ -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 "${@}"

View File

@@ -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=$!