FROM curlimages/curl:8.8.0@sha256:73e4d532ea62d7505c5865b517d3704966ffe916609bedc22af6833dc9969bcd 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.79.0-bullseye@sha256:3c391d311aba5422b4b801846b8775f3f8efcf2a08b4834f9cbacb539dac56fc 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:b257e5e831aa9949737638f6d323cd563347b2a5571d98b9b15eef0c7cd80b68

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"]