FROM curlimages/curl:8.9.1@sha256:8addc281f0ea517409209f76832b6ddc2cabc3264feb1ebbec2a2521ffad24e4 as snapcast

# renovate: datasource=github-tags depName=badaix/snapcast versioning=semver
ENV SNAPCAST_VERSION v0.27.0

RUN set -ex; \
    \
    curl -Lo /home/curl_user/snapserver.deb \
    https://github.com/badaix/snapcast/releases/download/${SNAPCAST_VERSION}/snapserver_${SNAPCAST_VERSION#v}-1_amd64.deb

FROM rust:1.80.1-bullseye@sha256:f6f599d3f027a97fb60cb87854199fcde390e25cee216712c3f9eede545b052e as librespot

# renovate: datasource=github-tags depName=librespot-org/librespot versioning=semver
ENV LIBRESPOT_VERSION v0.4.2

RUN set -ex; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        build-essential \
    ; \
    rustup component add rustfmt clippy; \
    git clone --branch ${LIBRESPOT_VERSION} https://github.com/librespot-org/librespot.git /librespot; \
    cd /librespot; \
    cargo build --release --no-default-features;

FROM debian:bullseye-slim@sha256:00558f781b91e90469812bad32002f311ab26ef241b4a1996f6600680ec82f5c

COPY --from=snapcast /home/curl_user/snapserver.deb /snapserver.deb
COPY --from=librespot /librespot/target/release/librespot /usr/local/bin/librespot

RUN set -ex; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        supervisor \
        /snapserver.deb \
    ; \
    mkdir -p \
        /var/log/supervisord \
        /var/run/supervisord \
    ; \
    apt-get clean; \
    rm -rf /var/lib/apt/lists/*;

COPY supervisord.conf /supervisord.conf

CMD ["/usr/bin/supervisord", "-c", "/supervisord.conf"]