-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.
ffmpeg-dev \
xxd \
libressl-dev \
- openssl-dev \
libplist-dev
##### ALAC #####
##### 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 \
ffmpeg \
libsodium \
libgcrypt \
+ libressl3.6-libcrypto \
libplist \
mandoc \
man-pages \
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
# Remove anything we don't need.
RUN rm -rf /lib/apk/db/*
-ENTRYPOINT [ "/init", "/usr/local/bin/shairport-sync" ]
+ENTRYPOINT [ "/init" ]
-FROM alpine:3.12 AS builder
+FROM alpine:3.17 AS builder
# Classic (aka AirPlay 1) Build
##### 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 \
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
# Remove anything we don't need.
RUN rm -rf /lib/apk/db/*
-ENTRYPOINT [ "/init", "/usr/local/bin/shairport-sync" ]
+ENTRYPOINT [ "/init" ]
--- /dev/null
+/etc/s6-overlay/s6-rc.d/01-startup/script.sh
+++ /dev/null
-#!/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
--- /dev/null
+01-startup
#!/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
--- /dev/null
+#!/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
--- /dev/null
+#!/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
+++ /dev/null
-/etc/s6-overlay/s6-rc.d/startup/script.sh
--- /dev/null
+/etc/s6-overlay/s6-rc.d/01-startup/script.sh
+++ /dev/null
-#!/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
--- /dev/null
+01-startup
#!/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
--- /dev/null
+#!/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
--- /dev/null
+#!/command/execlineb -S0
+/run/s6/basedir/bin/halt
--- /dev/null
+#!/command/execlineb -S0
+/run/s6/basedir/bin/halt
--- /dev/null
+#!/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
+++ /dev/null
-/etc/s6-overlay/s6-rc.d/startup/script.sh