From: Mike Brady Date: Wed, 24 Jun 2020 15:04:18 +0000 (+0100) Subject: Simple Docker configuration X-Git-Tag: 3.3.7d12~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6b613dfc78d2b2c4e00811ef00fb7894ec09b7fe;p=thirdparty%2Fshairport-sync.git Simple Docker configuration --- diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..9de0a929 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,68 @@ +FROM alpine AS builder-base + +RUN apk -U add \ + git \ + build-base \ + autoconf \ + automake \ + libtool \ + dbus \ + su-exec \ + alsa-lib-dev \ + libdaemon-dev \ + popt-dev \ + mbedtls-dev \ + soxr-dev \ + avahi-dev \ + libconfig-dev \ + libsndfile-dev \ + mosquitto-dev \ + xmltoman + +FROM builder-base AS builder-alac + +RUN git clone --recursive https://github.com/mikebrady/alac +WORKDIR alac +RUN autoreconf -fi +RUN ./configure +RUN make +RUN make install + +FROM builder-base AS builder-sps + +COPY --from=builder-alac /usr/local/lib/libalac.* /usr/local/lib/ +COPY --from=builder-alac /usr/local/lib/pkgconfig/alac.pc /usr/local/lib/pkgconfig/alac.pc +COPY --from=builder-alac /usr/local/include /usr/local/include + +RUN git clone --recursive https://github.com/mikebrady/shairport-sync +WORKDIR shairport-sync +RUN git checkout development +RUN autoreconf -fi +RUN ./configure \ + --with-alsa \ + --with-dummy \ + --with-pipe \ + --with-stdout \ + --with-avahi \ + --with-ssl=mbedtls \ + --with-soxr \ + --sysconfdir=/etc \ + --with-dbus-interface \ + --with-mpris-interface \ + --with-mqtt-client \ + --with-apple-alac \ + --with-convolution +RUN make -j $(nproc) +RUN make install + +RUN addgroup shairport-sync +RUN adduser -D shairport-sync -G shairport-sync + +# Add the shairport-sync user to the pre-existing audio group, which has ID 29, for access to the ALSA stuff +RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio + +COPY shairport-sync.conf /etc/shairport-sync.conf +COPY start.sh /start.sh + +ENTRYPOINT [ "/start.sh" ] + diff --git a/docker/shairport-sync.conf b/docker/shairport-sync.conf new file mode 100644 index 00000000..55531593 --- /dev/null +++ b/docker/shairport-sync.conf @@ -0,0 +1,13 @@ +// Shairport Sync has a rich collection of configuration settings. + +// This very simple configuration file simply gives the AirPlay service +// the default name "Docker". + +// Please look at /etc/shairport-sync.conf.sample for lots more settings and information +// Or go to the sample configuration file on the home respository: +// https://github.com/mikebrady/shairport-sync/blob/master/scripts/shairport-sync.conf + +general = +{ + name = "Docker"; // This is the name the service will advertise to iTunes. +} diff --git a/docker/start.sh b/docker/start.sh new file mode 100755 index 00000000..40d408d3 --- /dev/null +++ b/docker/start.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +rm -rf /var/run/dbus.pid +#mkdir -p /var/run/dbus + +dbus-uuidgen --ensure +dbus-daemon --system + +avahi-daemon --daemonize --no-chroot + +shairport-sync $@