Build & Push Docker Image / Build & push image (push) Successful in 8m57s
- OpenHome renderer (Product, Playlist, Time, Info, Volume): the app hands the whole queue to the bridge, which plays it on its own - Soft fades on pause, stop and user track changes (FADE_MS) - Gapless: cover per track, ffmpeg conversion of mixed formats, resume at the paused position after BluOS reconnects - Monitoring: /api/health, /api/prtg, /metrics - English web UI (UI_LANG=en|de) - Multi-arch image build via Gitea Actions, image includes ffmpeg Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
859 B
Docker
22 lines
859 B
Docker
FROM python:3.12-slim
|
|
|
|
LABEL org.opencontainers.image.title="bluos-upnp-bridge" \
|
|
org.opencontainers.image.description="UPnP/DLNA MediaRenderer bridge for BluOS (Bluesound) players"
|
|
|
|
# ffmpeg converts follow-up tracks of another format in gapless mode (MP3 <-> FLAC)
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ffmpeg \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& useradd --system --uid 10001 --no-create-home bridge \
|
|
&& mkdir -p /data && chown bridge /data
|
|
WORKDIR /app
|
|
COPY bridge.py web_ui.py gapless.py openhome.py /app/
|
|
|
|
USER bridge
|
|
ENV PYTHONUNBUFFERED=1 DATA_DIR=/data
|
|
VOLUME /data
|
|
HEALTHCHECK --interval=60s --timeout=5s --retries=3 \
|
|
CMD python -c "import os,urllib.request; urllib.request.urlopen('http://127.0.0.1:%s/health' % os.environ.get('HTTP_PORT','49494'), timeout=3)" || exit 1
|
|
|
|
CMD ["python", "/app/bridge.py"]
|