FROM debian:trixie-slim

ENV DEBIAN_FRONTEND=noninteractive \
    HOME=/var/lib/mopidy \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    PYTHONUNBUFFERED=1

RUN apt-get update \
 && apt-get install -y --no-install-recommends ca-certificates wget \
 && mkdir -p /etc/apt/keyrings \
 && wget -q -O /etc/apt/keyrings/mopidy-archive-keyring.gpg \
      https://apt.mopidy.com/mopidy-archive-keyring.gpg \
 && wget -q -O /etc/apt/sources.list.d/mopidy.sources \
      https://apt.mopidy.com/trixie.sources \
 && apt-get update \
 && apt-get install -y --no-install-recommends \
      gstreamer1.0-plugins-base \
      gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-ugly \
      gstreamer1.0-tools \
      mopidy \
      mopidy-mpd \
      mopidy-spotify \
      python3-pip \
 && rm -rf /var/lib/apt/lists/*

# Mopidy-Iris: latest release supplies the prebuilt frontend, then overlay the
# develop branch's Python modules for Mopidy 4 support (jaedb/Iris#1003).
RUN python3 -m pip install --break-system-packages --no-cache-dir Mopidy-Iris==3.70.0 \
 && wget -qO /tmp/iris-develop.tar.gz \
      https://github.com/jaedb/Iris/archive/83770dddb388b8699df414f47f8c80e33d75720d.tar.gz \
 && tar -xzf /tmp/iris-develop.tar.gz -C /tmp \
 && cp /tmp/Iris-83770dddb388b8699df414f47f8c80e33d75720d/mopidy_iris/*.py \
      "$(python3 -c 'import os, mopidy_iris; print(os.path.dirname(mopidy_iris.__file__))')" \
 && rm -rf /tmp/Iris-83770dddb388b8699df414f47f8c80e33d75720d /tmp/iris-develop.tar.gz

RUN mkdir -p /var/lib/mopidy/media /var/lib/mopidy/playlists /var/cache/mopidy \
 && chown -R mopidy:audio /var/lib/mopidy /var/cache/mopidy

COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod 755 /usr/local/bin/docker-entrypoint.sh

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["mopidy"]
