From b6e691263e29d83a6f1a26a29c876361dfd0f787 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Tue, 7 Mar 2023 21:52:07 +0100 Subject: [PATCH] Do not start SPS as s6 service to avoid passing arguments via -e MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König --- docker/Dockerfile | 6 ++++++ docker/README.md | 6 +++--- docker/classic/Dockerfile | 6 ++++++ docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run | 2 +- .../etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies | 1 - .../etc/s6-overlay/s6-rc.d/04-shairport-sync/finish | 2 -- .../classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run | 7 ------- .../classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type | 1 - .../s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync | 0 docker/classic/run.sh | 8 ++++++++ docker/etc/s6-overlay/s6-rc.d/03-avahi/run | 2 +- .../etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies | 1 - docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish | 2 -- docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run | 7 ------- docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type | 1 - .../s6-overlay/s6-rc.d/user/contents.d/05-shairport-sync | 0 docker/run.sh | 8 ++++++++ 17 files changed, 33 insertions(+), 27 deletions(-) delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync create mode 100644 docker/classic/run.sh delete mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies delete mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish delete mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run delete mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type delete mode 100644 docker/etc/s6-overlay/s6-rc.d/user/contents.d/05-shairport-sync create mode 100644 docker/run.sh diff --git a/docker/Dockerfile b/docker/Dockerfile index 47e9de46..dd21bb8b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -113,3 +113,9 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* + +# Add run script that will start SPS +COPY ./docker/run.sh ./run.sh +RUN chmod +x /run.sh + +Entrypoint ["/init","./run.sh"] diff --git a/docker/README.md b/docker/README.md index 9953cefc..560dc89b 100644 --- a/docker/README.md +++ b/docker/README.md @@ -31,12 +31,12 @@ $ docker run -d --restart unless-stopped --net host --device /dev/snd \ ### Options -To pass command line options to Shairport Sync they need to be set with `-e ARG=`. Here is an example: +Command line options will be passed to Shairport Sync. Here is an example: ``` $ docker run -d --restart unless-stopped --net host --device /dev/snd \ - -e ARG="-v --statistics -a DenSystem -d hw:0 -c PCM" \ - mikebrady/shairport-sync:latest + mikebrady/shairport-sync:latest \ + -v --statistics -a DenSystem -d hw:0 -c PCM ``` This will send audio to alsa hardware device `hw:0` and make use of the that device's mixer control called `PCM`. The service will be visible as `DenSystem` on the network. diff --git a/docker/classic/Dockerfile b/docker/classic/Dockerfile index 962ef28c..3d072a55 100644 --- a/docker/classic/Dockerfile +++ b/docker/classic/Dockerfile @@ -91,3 +91,9 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* + +# Add run script that will start SPS +COPY ./docker/run.sh ./run.sh +RUN chmod +x /run.sh + +Entrypoint ["/init","./run.sh"] diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run index 20275d40..e3ea2ff9 100644 --- a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -1,6 +1,6 @@ #!/command/with-contenv sh while [ ! -f /var/run/dbus/dbus.pid ]; do - echo "s6-rc: warning: dbus is not running, sleeping for 1 seconds before trying to start avahi" + echo "s6-rc: warning: dbus is not running, sleeping for 1 second before trying to start avahi" sleep 1 done echo "Starting avahi" diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies deleted file mode 100644 index 97763270..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies +++ /dev/null @@ -1 +0,0 @@ -03-avahi diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish deleted file mode 100644 index e4a13866..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish +++ /dev/null @@ -1,2 +0,0 @@ -#!/command/execlineb -S0 -/run/s6/basedir/bin/halt diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run deleted file mode 100644 index 5642097d..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run +++ /dev/null @@ -1,7 +0,0 @@ -#!/command/with-contenv sh -while [ ! -f /var/run/avahi-daemon/pid ]; do - echo "s6-rc: warning: avahi is not running, sleeping for 1 seconds before trying to start shairport-sync" - sleep 1 -done -echo "Starting shairport-sync" -exec /usr/local/bin/shairport-sync $ARG diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type deleted file mode 100644 index 5883cff0..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type +++ /dev/null @@ -1 +0,0 @@ -longrun diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync b/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync deleted file mode 100644 index e69de29b..00000000 diff --git a/docker/classic/run.sh b/docker/classic/run.sh new file mode 100644 index 00000000..f901817d --- /dev/null +++ b/docker/classic/run.sh @@ -0,0 +1,8 @@ +#!/bin/sh +while [ ! -f /var/run/avahi-daemon/pid ]; do + echo "Warning: avahi is not running, sleeping for 1 second before trying to start shairport-sync" + sleep 1 +done +echo "Starting shairport-sync" +# pass all commandline options to shairport-sync +/usr/local/bin/shairport-sync "$@" diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/run b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run index 20275d40..e3ea2ff9 100644 --- a/docker/etc/s6-overlay/s6-rc.d/03-avahi/run +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -1,6 +1,6 @@ #!/command/with-contenv sh while [ ! -f /var/run/dbus/dbus.pid ]; do - echo "s6-rc: warning: dbus is not running, sleeping for 1 seconds before trying to start avahi" + echo "s6-rc: warning: dbus is not running, sleeping for 1 second before trying to start avahi" sleep 1 done echo "Starting avahi" diff --git a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies deleted file mode 100644 index a8d402ef..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies +++ /dev/null @@ -1 +0,0 @@ -04-nqptp diff --git a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish deleted file mode 100644 index e4a13866..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish +++ /dev/null @@ -1,2 +0,0 @@ -#!/command/execlineb -S0 -/run/s6/basedir/bin/halt diff --git a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run deleted file mode 100644 index 5642097d..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run +++ /dev/null @@ -1,7 +0,0 @@ -#!/command/with-contenv sh -while [ ! -f /var/run/avahi-daemon/pid ]; do - echo "s6-rc: warning: avahi is not running, sleeping for 1 seconds before trying to start shairport-sync" - sleep 1 -done -echo "Starting shairport-sync" -exec /usr/local/bin/shairport-sync $ARG diff --git a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type deleted file mode 100644 index 5883cff0..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type +++ /dev/null @@ -1 +0,0 @@ -longrun diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/05-shairport-sync b/docker/etc/s6-overlay/s6-rc.d/user/contents.d/05-shairport-sync deleted file mode 100644 index e69de29b..00000000 diff --git a/docker/run.sh b/docker/run.sh new file mode 100644 index 00000000..f901817d --- /dev/null +++ b/docker/run.sh @@ -0,0 +1,8 @@ +#!/bin/sh +while [ ! -f /var/run/avahi-daemon/pid ]; do + echo "Warning: avahi is not running, sleeping for 1 second before trying to start shairport-sync" + sleep 1 +done +echo "Starting shairport-sync" +# pass all commandline options to shairport-sync +/usr/local/bin/shairport-sync "$@" -- 2.47.2