Files
david ba3e172dda fix: power outage auto-recovery improvements
Mosquitto:
- Change restart: always (was unless-stopped) to survive daemon restarts
- Add healthcheck (pub/sub ping) for depends_on conditions
- All downstream services use condition: service_healthy

Party-lock:
- Add MQTT connection retry loop (was crashing on DNS race after restart)

Zigbee2mqtt:
- Add entrypoint wrapper that auto-applies BLZ bridge patch at startup
- Bridge patch no longer needs manual 'just z2m-patch-bridge' after image pulls

Mopidy:
- Add python3-gi + python3-gi-cairo via apt (fixes 'No module named gi')
- Set PYTHONPATH to expose system gi module to Python 3.12
2026-07-09 18:56:36 -07:00

47 lines
1.2 KiB
Docker

# Mopidy music server with Qobuz + local files
# Builds from python:3.12-slim + pip (no ghcr.io dependency)
FROM python:3.12-slim-bookworm
# System deps for mopidy + extensions + GStreamer playback + PyGObject
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
libcairo2 \
libpango-1.0-0 \
libpangoft2-1.0-0 \
libgirepository-1.0-1 \
gir1.2-glib-2.0 \
gir1.2-gstreamer-1.0 \
gir1.2-gst-plugins-base-1.0 \
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
python3-gi \
python3-gi-cairo \
&& rm -rf /var/lib/apt/lists/*
# Expose the system Python's gi module to Python 3.12 (/usr/local).
ENV PYTHONPATH=/usr/lib/python3/dist-packages:${PYTHONPATH}
RUN pip install --no-cache-dir \
"setuptools<80" \
Mopidy==3.4.2 \
Mopidy-Qobuz \
Mopidy-Local
# Default config (overridable via bind mount)
COPY mopidy.conf /config/mopidy.conf
VOLUME ["/var/lib/mopidy", "/music"]
EXPOSE 6680
# Run as the unprivileged "mopidy" user from python base
USER nobody
CMD ["mopidy", "--config", "/config/mopidy.conf"]