Files
docker-mopidy-iris/Dockerfile
2021-02-19 15:55:55 +00:00

106 lines
2.7 KiB
Docker

ARG alpine_version=3.13
FROM alpine:$alpine_version
# retrive alpine_version from before FROM
ARG alpine_version
ARG puid=1000
ARG pgid=1000
ARG audio_gid=29
# This is an archive and isn't updated any more
ARG spotify_version=12.1.51-Linux-x86_64
WORKDIR /mopidy
RUN \
echo "* Updating Package Repositories" \
&& echo "http://dl-cdn.alpinelinux.org/alpine/v${alpine_version}/main" >> /etc/apk/repositories \
&& echo "http://dl-cdn.alpinelinux.org/alpine/v${alpine_version}/community" >> /etc/apk/repositories \
&& apk upgrade --no-cache \
&& echo "* Installing Runtime Packages" \
&& apk add -U --no-cache \
coreutils \
build-base \
rust \
cargo \
su-exec \
libxml2-dev \
libxslt-dev \
libffi-dev \
openssl-dev \
python3-dev \
py3-setuptools \
py3-pip \
libcdio \
libcaca \
libvpx \
v4l-utils-libs \
py3-requests \
py3-crypto \
py3-gst \
py3-gobject3 \
mailcap \
icecast \
gstreamer \
gstreamer-tools \
gst-plugins-base \
gst-plugins-good \
gst-plugins-ugly \
alsa-utils \
&& pip3 install -U \
pyopenssl \
youtube-dl \
pyasn1 \
&& wget -c https://mopidy.github.io/libspotify-archive/libspotify-${spotify_version}-release.tar.gz -O - | tar -xzC /tmp \
&& make install -C /tmp/libspotify-${spotify_version}-release prefix=/usr/local || true \
&& echo "* Installing Mopidy + Extensions" \
&& pip3 install -U \
Mopidy \
Mopidy-Bandcamp \
Mopidy-GMusic \
Mopidy-Iris \
Mopidy-Local \
Mopidy-MPD \
Mopidy-Jellyfin \
Mopidy-Spotify-Web \
Mopidy-SoundCloud \
&& echo "* Cleaning up" \
&& rm -rf /var/cache/apk/* \
&& rm -rf /root/.cache /root/.cargo \
&& rm -rf /tmp/* \
&& apk del \
build-base \
rust \
cargo \
libxml2-dev \
libxslt-dev \
libffi-dev \
openssl-dev \
python3-dev \
py3-pip
# Do this in a separate layer, because building the last is slooow
# This allows us to alter these parameters without rebuilding the last.
RUN \
echo "* Creating Mopidy User" \
&& addgroup -g ${pgid} mopidy \
&& adduser -h /mopidy -s /bin/sh -D -G mopidy -u $puid mopidy \
&& delgroup audio \
&& addgroup -g ${audio_gid} audio \
&& addgroup mopidy audio \
&& echo "mopidy ALL=NOPASSWD: /usr/lib/python3.8/site-packages/mopidy_iris/system.sh" >> /etc/sudoers \
&& echo "* Done" \
&& sleep 1
COPY root/ /
RUN chmod +x /usr/local/bin/run.sh /usr/local/bin/entrypoint.sh
EXPOSE 6600 6680 8000
VOLUME /data /music
LABEL description "Open source media server"
ENTRYPOINT ["entrypoint.sh"]
#CMD ["run.sh"]