]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Simple Docker configuration
authorMike Brady <mikebradydublin@icloud.com>
Wed, 24 Jun 2020 15:04:18 +0000 (16:04 +0100)
committerMike Brady <mikebradydublin@icloud.com>
Wed, 24 Jun 2020 15:04:18 +0000 (16:04 +0100)
docker/Dockerfile [new file with mode: 0644]
docker/shairport-sync.conf [new file with mode: 0644]
docker/start.sh [new file with mode: 0755]

diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644 (file)
index 0000000..9de0a92
--- /dev/null
@@ -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 (file)
index 0000000..5553159
--- /dev/null
@@ -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 (executable)
index 0000000..40d408d
--- /dev/null
@@ -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 $@