mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 13:34:40 +00:00
1a1a6138ab
- docker/entrypoint.musician.sh: on a fresh /data volume, create the managed playlists and touch radio_log.log/persistence.log empty so the track-forwarding thread waits instead of crashing when Liquidsoap runs elsewhere; never overwrites preserved files - Dockerfile.musician: wire the entrypoint, default CONJURER_MUSICIAN_BASE =/data (persist playlists/logs) and CONJURER_STREAM_TEMPLATE=/app/stream.html; declare the /data volume - DOCKER_PROXMOX.md: expand the musician section (two volumes, preserving existing playlists, radio-log coupling, stream template) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
1.2 KiB
Docker
36 lines
1.2 KiB
Docker
# Conjurer musician (Flask file/playlist service backing the radio).
|
|
# Build from the repository root:
|
|
# docker build -f docker/Dockerfile.musician -t conjurer-musician .
|
|
#
|
|
# NOTE: this containerises the musician *web service* only. The Liquidsoap
|
|
# radio (radio_conjurer.liq) and any Samba/NFS share tooling run separately.
|
|
FROM python:3.11-slim
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
COPY conjurer_musician/requirements_musician.txt ./
|
|
RUN pip install --no-cache-dir --upgrade pip \
|
|
&& pip install --no-cache-dir -r requirements_musician.txt
|
|
|
|
COPY conjurer_musician/ ./
|
|
COPY docker/entrypoint.musician.sh /usr/local/bin/entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
CONJURER_MUSICIAN_HOST=0.0.0.0 \
|
|
CONJURER_MUSICIAN_PORT=5000 \
|
|
CONJURER_MUSIC_FOLDER=/music \
|
|
CONJURER_MUSICIAN_BASE=/data \
|
|
CONJURER_STREAM_TEMPLATE=/app/stream.html
|
|
|
|
# /music = the mp3 library (read-only ok); /data = writable playlists + logs.
|
|
VOLUME ["/music", "/data"]
|
|
EXPOSE 5000
|
|
|
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|
|
CMD ["python", "conjurer_musician.py"]
|