From bea0faf488f18ca51552705519a67fa65ff29af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Wed, 1 Feb 2023 14:10:06 +0100 Subject: [PATCH 1/3] Update Dockerfiles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König --- docker/Dockerfile | 10 +++++----- docker/classic/Dockerfile | 8 ++++---- .../etc/s6-overlay/s6-rc.d/01-startup/dependencies | 1 + .../s6-rc.d/{startup => 01-startup}/script.sh | 0 .../s6-overlay/s6-rc.d/{startup => 01-startup}/type | 0 docker/classic/etc/s6-overlay/s6-rc.d/01-startup/up | 1 + docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/run | 8 -------- .../etc/s6-overlay/s6-rc.d/02-dbus/dependencies | 1 + .../etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/finish | 0 .../etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/run | 2 +- .../etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/type | 0 .../etc/s6-overlay/s6-rc.d/03-avahi/dependencies | 1 + .../s6-overlay/s6-rc.d/{02-avahi => 03-avahi}/finish | 0 docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run | 7 +++++++ .../etc/s6-overlay/s6-rc.d/{02-avahi => 03-avahi}/type | 0 .../s6-overlay/s6-rc.d/04-shairport-sync/dependencies | 1 + .../etc/s6-overlay/s6-rc.d/04-shairport-sync}/finish | 0 .../etc/s6-overlay/s6-rc.d/04-shairport-sync/run | 7 +++++++ .../etc/s6-overlay/s6-rc.d/04-shairport-sync}/type | 0 docker/classic/etc/s6-overlay/s6-rc.d/startup/up | 1 - .../s6-rc.d/user/contents.d/{01-dbus => 01-startup} | 0 .../s6-rc.d/user/contents.d/{02-avahi => 02-dbus} | 0 .../s6-rc.d/user/contents.d/{startup => 03-avahi} | 0 .../s6-rc.d/user/contents.d/04-shairport-sync} | 0 docker/etc/s6-overlay/s6-rc.d/01-startup/dependencies | 1 + .../s6-rc.d/{startup => 01-startup}/script.sh | 0 .../s6-overlay/s6-rc.d/{startup => 01-startup}/type | 0 docker/etc/s6-overlay/s6-rc.d/01-startup/up | 1 + docker/etc/s6-overlay/s6-rc.d/02-avahi/run | 8 -------- docker/etc/s6-overlay/s6-rc.d/02-dbus/dependencies | 1 + .../s6-overlay/s6-rc.d/{02-avahi => 02-dbus}/finish | 0 docker/etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/run | 2 +- .../etc/s6-overlay/s6-rc.d/{02-avahi => 02-dbus}/type | 0 docker/etc/s6-overlay/s6-rc.d/03-avahi/dependencies | 1 + .../s6-overlay/s6-rc.d/{03-nqptp => 03-avahi}/finish | 0 docker/etc/s6-overlay/s6-rc.d/03-avahi/run | 7 +++++++ .../etc/s6-overlay/s6-rc.d/{03-nqptp => 03-avahi}/type | 0 docker/etc/s6-overlay/s6-rc.d/04-nqptp/dependencies | 1 + docker/etc/s6-overlay/s6-rc.d/04-nqptp/finish | 2 ++ .../etc/s6-overlay/s6-rc.d/{03-nqptp => 04-nqptp}/run | 0 docker/etc/s6-overlay/s6-rc.d/04-nqptp/type | 1 + .../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 + docker/etc/s6-overlay/s6-rc.d/startup/up | 1 - .../s6-rc.d/user/contents.d/{02-avahi => 01-startup} | 0 .../s6-rc.d/user/contents.d/{03-nqptp => 02-dbus} | 0 .../s6-rc.d/user/contents.d/{startup => 03-avahi} | 0 docker/etc/s6-overlay/s6-rc.d/user/contents.d/04-nqptp | 0 .../s6-rc.d/user/contents.d/05-shairport-sync | 0 51 files changed, 56 insertions(+), 29 deletions(-) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/01-startup/dependencies rename docker/classic/etc/s6-overlay/s6-rc.d/{startup => 01-startup}/script.sh (100%) rename docker/classic/etc/s6-overlay/s6-rc.d/{startup => 01-startup}/type (100%) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/01-startup/up delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/run create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/dependencies rename docker/classic/etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/finish (100%) rename docker/classic/etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/run (73%) rename docker/classic/etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/type (100%) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/dependencies rename docker/classic/etc/s6-overlay/s6-rc.d/{02-avahi => 03-avahi}/finish (100%) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run rename docker/classic/etc/s6-overlay/s6-rc.d/{02-avahi => 03-avahi}/type (100%) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies rename docker/{etc/s6-overlay/s6-rc.d/01-dbus => classic/etc/s6-overlay/s6-rc.d/04-shairport-sync}/finish (100%) create mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run rename docker/{etc/s6-overlay/s6-rc.d/01-dbus => classic/etc/s6-overlay/s6-rc.d/04-shairport-sync}/type (100%) delete mode 100644 docker/classic/etc/s6-overlay/s6-rc.d/startup/up rename docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/{01-dbus => 01-startup} (100%) rename docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/{02-avahi => 02-dbus} (100%) rename docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/{startup => 03-avahi} (100%) rename docker/{etc/s6-overlay/s6-rc.d/user/contents.d/01-dbus => classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync} (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/01-startup/dependencies rename docker/etc/s6-overlay/s6-rc.d/{startup => 01-startup}/script.sh (100%) rename docker/etc/s6-overlay/s6-rc.d/{startup => 01-startup}/type (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/01-startup/up delete mode 100644 docker/etc/s6-overlay/s6-rc.d/02-avahi/run create mode 100644 docker/etc/s6-overlay/s6-rc.d/02-dbus/dependencies rename docker/etc/s6-overlay/s6-rc.d/{02-avahi => 02-dbus}/finish (100%) rename docker/etc/s6-overlay/s6-rc.d/{01-dbus => 02-dbus}/run (73%) rename docker/etc/s6-overlay/s6-rc.d/{02-avahi => 02-dbus}/type (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/03-avahi/dependencies rename docker/etc/s6-overlay/s6-rc.d/{03-nqptp => 03-avahi}/finish (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/03-avahi/run rename docker/etc/s6-overlay/s6-rc.d/{03-nqptp => 03-avahi}/type (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/04-nqptp/dependencies create mode 100644 docker/etc/s6-overlay/s6-rc.d/04-nqptp/finish rename docker/etc/s6-overlay/s6-rc.d/{03-nqptp => 04-nqptp}/run (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/04-nqptp/type create mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies create mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish create mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run create mode 100644 docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type delete mode 100644 docker/etc/s6-overlay/s6-rc.d/startup/up rename docker/etc/s6-overlay/s6-rc.d/user/contents.d/{02-avahi => 01-startup} (100%) rename docker/etc/s6-overlay/s6-rc.d/user/contents.d/{03-nqptp => 02-dbus} (100%) rename docker/etc/s6-overlay/s6-rc.d/user/contents.d/{startup => 03-avahi} (100%) create mode 100644 docker/etc/s6-overlay/s6-rc.d/user/contents.d/04-nqptp create mode 100644 docker/etc/s6-overlay/s6-rc.d/user/contents.d/05-shairport-sync diff --git a/docker/Dockerfile b/docker/Dockerfile index 5a6bc678..f1ea8d66 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.12 AS builder +FROM alpine:3.17 AS builder # Check required arguments exist. These will be provided by the Github Action # Workflow and are required to ensure the correct branches are being used. @@ -26,7 +26,6 @@ RUN apk -U add \ ffmpeg-dev \ xxd \ libressl-dev \ - openssl-dev \ libplist-dev ##### ALAC ##### @@ -66,7 +65,7 @@ WORKDIR / ##### SPS END ##### # Shairport Sync Runtime System -FROM crazymax/alpine-s6:3.12-3.1.1.2 +FROM crazymax/alpine-s6:3.17-3.1.1.2 RUN apk -U add \ alsa-lib \ @@ -83,6 +82,7 @@ RUN apk -U add \ ffmpeg \ libsodium \ libgcrypt \ + libressl3.6-libcrypto \ libplist \ mandoc \ man-pages \ @@ -100,7 +100,7 @@ COPY --from=builder /shairport-sync/build/install/etc/dbus-1/system.d/shairport- COPY --from=builder /shairport-sync/build/install/etc/dbus-1/system.d/shairport-sync-mpris.conf /etc/dbus-1/system.d/ COPY ./docker/etc/s6-overlay/s6-rc.d /etc/s6-overlay/s6-rc.d -RUN chmod +x /etc/s6-overlay/s6-rc.d/startup/script.sh +RUN chmod +x /etc/s6-overlay/s6-rc.d/01-startup/script.sh # Create non-root user for running the container -- running as the user 'shairport-sync' also allows # Shairport Sync to provide the D-Bus and MPRIS interfaces within the container @@ -114,4 +114,4 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* -ENTRYPOINT [ "/init", "/usr/local/bin/shairport-sync" ] +ENTRYPOINT [ "/init" ] diff --git a/docker/classic/Dockerfile b/docker/classic/Dockerfile index 03baac5e..f6cb01c7 100644 --- a/docker/classic/Dockerfile +++ b/docker/classic/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.12 AS builder +FROM alpine:3.17 AS builder # Classic (aka AirPlay 1) Build @@ -49,7 +49,7 @@ WORKDIR / ##### SPS END ##### # Shairport Sync Runtime System -FROM crazymax/alpine-s6:3.12-3.1.1.2 +FROM crazymax/alpine-s6:3.17-3.1.1.2 RUN apk -U add \ alsa-lib \ @@ -78,7 +78,7 @@ COPY --from=builder /shairport-sync/build/install/etc/dbus-1/system.d/shairport- COPY --from=builder /shairport-sync/build/install/etc/dbus-1/system.d/shairport-sync-mpris.conf /etc/dbus-1/system.d/ COPY ./docker/classic/etc/s6-overlay/s6-rc.d /etc/s6-overlay/s6-rc.d -RUN chmod +x /etc/s6-overlay/s6-rc.d/startup/script.sh +RUN chmod +x /etc/s6-overlay/s6-rc.d/01-startup/script.sh # Create non-root user for running the container -- running as the user 'shairport-sync' also allows # Shairport Sync to provide the D-Bus and MPRIS interfaces within the container @@ -92,4 +92,4 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* -ENTRYPOINT [ "/init", "/usr/local/bin/shairport-sync" ] +ENTRYPOINT [ "/init" ] diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/dependencies b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/dependencies new file mode 100644 index 00000000..df967b96 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/dependencies @@ -0,0 +1 @@ +base diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/startup/script.sh b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/script.sh similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/startup/script.sh rename to docker/classic/etc/s6-overlay/s6-rc.d/01-startup/script.sh diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/startup/type b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/type similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/startup/type rename to docker/classic/etc/s6-overlay/s6-rc.d/01-startup/type diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/up b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/up new file mode 100644 index 00000000..0521bff8 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/01-startup/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/01-startup/script.sh diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/run b/docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/run deleted file mode 100644 index 2f6be7b4..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/run +++ /dev/null @@ -1,8 +0,0 @@ -#!/command/with-contenv sh -sleep 5 -while [ ! -f /var/run/dbus.pid ]; do - "dbus is not running, sleeping for 5 seconds before trying to start avahi" - sleep 5 -done -echo "Starting avahi" -exec avahi-daemon --no-chroot diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/dependencies b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/dependencies new file mode 100644 index 00000000..f04b211f --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/dependencies @@ -0,0 +1 @@ +01-startup diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/finish b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/finish similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/finish rename to docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/finish diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/run b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run similarity index 73% rename from docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/run rename to docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run index bf1cb501..2278697a 100644 --- a/docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/run +++ b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run @@ -1,4 +1,4 @@ #!/command/with-contenv sh -rm -rf /var/run/dbus.pid +rm -rf /var/run/dbus/dbus.pid echo "Starting dbus" exec dbus-daemon --system --nofork diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/type b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/type similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/01-dbus/type rename to docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/type diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/dependencies b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/dependencies new file mode 100644 index 00000000..497f42ec --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/dependencies @@ -0,0 +1 @@ +02-dbus diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/finish b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/finish similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/finish rename to docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/finish 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 new file mode 100644 index 00000000..20275d40 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -0,0 +1,7 @@ +#!/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" + sleep 1 +done +echo "Starting avahi" +exec avahi-daemon --no-chroot diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/type b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/type similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/02-avahi/type rename to docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/type 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 new file mode 100644 index 00000000..97763270 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/dependencies @@ -0,0 +1 @@ +03-avahi diff --git a/docker/etc/s6-overlay/s6-rc.d/01-dbus/finish b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/01-dbus/finish rename to docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/finish 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 new file mode 100644 index 00000000..c533db5e --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run @@ -0,0 +1,7 @@ +#!/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 diff --git a/docker/etc/s6-overlay/s6-rc.d/01-dbus/type b/docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/01-dbus/type rename to docker/classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/type diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/startup/up b/docker/classic/etc/s6-overlay/s6-rc.d/startup/up deleted file mode 100644 index 06df8350..00000000 --- a/docker/classic/etc/s6-overlay/s6-rc.d/startup/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/startup/script.sh diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/01-dbus b/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/01-startup similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/01-dbus rename to docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/01-startup diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/02-avahi b/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/02-dbus similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/02-avahi rename to docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/02-dbus diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/startup b/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/03-avahi similarity index 100% rename from docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/startup rename to docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/03-avahi diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/01-dbus b/docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/user/contents.d/01-dbus rename to docker/classic/etc/s6-overlay/s6-rc.d/user/contents.d/04-shairport-sync diff --git a/docker/etc/s6-overlay/s6-rc.d/01-startup/dependencies b/docker/etc/s6-overlay/s6-rc.d/01-startup/dependencies new file mode 100644 index 00000000..df967b96 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/01-startup/dependencies @@ -0,0 +1 @@ +base diff --git a/docker/etc/s6-overlay/s6-rc.d/startup/script.sh b/docker/etc/s6-overlay/s6-rc.d/01-startup/script.sh similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/startup/script.sh rename to docker/etc/s6-overlay/s6-rc.d/01-startup/script.sh diff --git a/docker/etc/s6-overlay/s6-rc.d/startup/type b/docker/etc/s6-overlay/s6-rc.d/01-startup/type similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/startup/type rename to docker/etc/s6-overlay/s6-rc.d/01-startup/type diff --git a/docker/etc/s6-overlay/s6-rc.d/01-startup/up b/docker/etc/s6-overlay/s6-rc.d/01-startup/up new file mode 100644 index 00000000..0521bff8 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/01-startup/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/01-startup/script.sh diff --git a/docker/etc/s6-overlay/s6-rc.d/02-avahi/run b/docker/etc/s6-overlay/s6-rc.d/02-avahi/run deleted file mode 100644 index 2f6be7b4..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/02-avahi/run +++ /dev/null @@ -1,8 +0,0 @@ -#!/command/with-contenv sh -sleep 5 -while [ ! -f /var/run/dbus.pid ]; do - "dbus is not running, sleeping for 5 seconds before trying to start avahi" - sleep 5 -done -echo "Starting avahi" -exec avahi-daemon --no-chroot diff --git a/docker/etc/s6-overlay/s6-rc.d/02-dbus/dependencies b/docker/etc/s6-overlay/s6-rc.d/02-dbus/dependencies new file mode 100644 index 00000000..f04b211f --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/02-dbus/dependencies @@ -0,0 +1 @@ +01-startup diff --git a/docker/etc/s6-overlay/s6-rc.d/02-avahi/finish b/docker/etc/s6-overlay/s6-rc.d/02-dbus/finish similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/02-avahi/finish rename to docker/etc/s6-overlay/s6-rc.d/02-dbus/finish diff --git a/docker/etc/s6-overlay/s6-rc.d/01-dbus/run b/docker/etc/s6-overlay/s6-rc.d/02-dbus/run similarity index 73% rename from docker/etc/s6-overlay/s6-rc.d/01-dbus/run rename to docker/etc/s6-overlay/s6-rc.d/02-dbus/run index bf1cb501..2278697a 100644 --- a/docker/etc/s6-overlay/s6-rc.d/01-dbus/run +++ b/docker/etc/s6-overlay/s6-rc.d/02-dbus/run @@ -1,4 +1,4 @@ #!/command/with-contenv sh -rm -rf /var/run/dbus.pid +rm -rf /var/run/dbus/dbus.pid echo "Starting dbus" exec dbus-daemon --system --nofork diff --git a/docker/etc/s6-overlay/s6-rc.d/02-avahi/type b/docker/etc/s6-overlay/s6-rc.d/02-dbus/type similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/02-avahi/type rename to docker/etc/s6-overlay/s6-rc.d/02-dbus/type diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/dependencies b/docker/etc/s6-overlay/s6-rc.d/03-avahi/dependencies new file mode 100644 index 00000000..497f42ec --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/dependencies @@ -0,0 +1 @@ +02-dbus diff --git a/docker/etc/s6-overlay/s6-rc.d/03-nqptp/finish b/docker/etc/s6-overlay/s6-rc.d/03-avahi/finish similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/03-nqptp/finish rename to docker/etc/s6-overlay/s6-rc.d/03-avahi/finish diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/run b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run new file mode 100644 index 00000000..20275d40 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -0,0 +1,7 @@ +#!/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" + sleep 1 +done +echo "Starting avahi" +exec avahi-daemon --no-chroot diff --git a/docker/etc/s6-overlay/s6-rc.d/03-nqptp/type b/docker/etc/s6-overlay/s6-rc.d/03-avahi/type similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/03-nqptp/type rename to docker/etc/s6-overlay/s6-rc.d/03-avahi/type diff --git a/docker/etc/s6-overlay/s6-rc.d/04-nqptp/dependencies b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/dependencies new file mode 100644 index 00000000..97763270 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/dependencies @@ -0,0 +1 @@ +03-avahi diff --git a/docker/etc/s6-overlay/s6-rc.d/04-nqptp/finish b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/finish new file mode 100644 index 00000000..e4a13866 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/finish @@ -0,0 +1,2 @@ +#!/command/execlineb -S0 +/run/s6/basedir/bin/halt diff --git a/docker/etc/s6-overlay/s6-rc.d/03-nqptp/run b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/run similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/03-nqptp/run rename to docker/etc/s6-overlay/s6-rc.d/04-nqptp/run diff --git a/docker/etc/s6-overlay/s6-rc.d/04-nqptp/type b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/04-nqptp/type @@ -0,0 +1 @@ +longrun 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 new file mode 100644 index 00000000..a8d402ef --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/dependencies @@ -0,0 +1 @@ +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 new file mode 100644 index 00000000..e4a13866 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/finish @@ -0,0 +1,2 @@ +#!/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 new file mode 100644 index 00000000..c533db5e --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run @@ -0,0 +1,7 @@ +#!/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 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 new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/type @@ -0,0 +1 @@ +longrun diff --git a/docker/etc/s6-overlay/s6-rc.d/startup/up b/docker/etc/s6-overlay/s6-rc.d/startup/up deleted file mode 100644 index 06df8350..00000000 --- a/docker/etc/s6-overlay/s6-rc.d/startup/up +++ /dev/null @@ -1 +0,0 @@ -/etc/s6-overlay/s6-rc.d/startup/script.sh diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/02-avahi b/docker/etc/s6-overlay/s6-rc.d/user/contents.d/01-startup similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/user/contents.d/02-avahi rename to docker/etc/s6-overlay/s6-rc.d/user/contents.d/01-startup diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/03-nqptp b/docker/etc/s6-overlay/s6-rc.d/user/contents.d/02-dbus similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/user/contents.d/03-nqptp rename to docker/etc/s6-overlay/s6-rc.d/user/contents.d/02-dbus diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/startup b/docker/etc/s6-overlay/s6-rc.d/user/contents.d/03-avahi similarity index 100% rename from docker/etc/s6-overlay/s6-rc.d/user/contents.d/startup rename to docker/etc/s6-overlay/s6-rc.d/user/contents.d/03-avahi diff --git a/docker/etc/s6-overlay/s6-rc.d/user/contents.d/04-nqptp b/docker/etc/s6-overlay/s6-rc.d/user/contents.d/04-nqptp new file mode 100644 index 00000000..e69de29b 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 new file mode 100644 index 00000000..e69de29b From f79c3e1579bee23799c9345c685cf6ee2be24044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Sun, 5 Feb 2023 20:29:49 +0100 Subject: [PATCH 2/3] Allow passing arguments via environment variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christian König --- docker/Dockerfile | 2 -- docker/README.md | 7 ++++--- docker/classic/Dockerfile | 2 -- .../classic/etc/s6-overlay/s6-rc.d/04-shairport-sync/run | 2 +- docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run | 2 +- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f1ea8d66..47e9de46 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -113,5 +113,3 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* - -ENTRYPOINT [ "/init" ] diff --git a/docker/README.md b/docker/README.md index 295d2170..9953cefc 100644 --- a/docker/README.md +++ b/docker/README.md @@ -31,11 +31,12 @@ $ docker run -d --restart unless-stopped --net host --device /dev/snd \ ### Options -Command line options will be passed to Shairport Sync. Here is an example: +To pass command line options to Shairport Sync they need to be set with `-e ARG=`. Here is an example: + ``` $ docker run -d --restart unless-stopped --net host --device /dev/snd \ - mikebrady/shairport-sync:latest \ - -v --statistics -a DenSystem -d hw:0 -c PCM + -e ARG="-v --statistics -a DenSystem -d hw:0 -c PCM" \ + mikebrady/shairport-sync:latest ``` 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 f6cb01c7..962ef28c 100644 --- a/docker/classic/Dockerfile +++ b/docker/classic/Dockerfile @@ -91,5 +91,3 @@ RUN addgroup -g 29 docker_audio && addgroup shairport-sync docker_audio && addgr # Remove anything we don't need. RUN rm -rf /lib/apk/db/* - -ENTRYPOINT [ "/init" ] 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 index c533db5e..5642097d 100644 --- 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 @@ -4,4 +4,4 @@ while [ ! -f /var/run/avahi-daemon/pid ]; do sleep 1 done echo "Starting shairport-sync" -exec /usr/local/bin/shairport-sync +exec /usr/local/bin/shairport-sync $ARG 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 index c533db5e..5642097d 100644 --- a/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run +++ b/docker/etc/s6-overlay/s6-rc.d/05-shairport-sync/run @@ -4,4 +4,4 @@ while [ ! -f /var/run/avahi-daemon/pid ]; do sleep 1 done echo "Starting shairport-sync" -exec /usr/local/bin/shairport-sync +exec /usr/local/bin/shairport-sync $ARG From b6e691263e29d83a6f1a26a29c876361dfd0f787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Date: Tue, 7 Mar 2023 21:52:07 +0100 Subject: [PATCH 3/3] Do not start SPS as s6 service to avoid passing arguments via -e MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 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 "$@"