mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 13:34:40 +00:00
597bc004fc
Containerises the three services (each intended for its own Proxmox VM)
and adds the code changes needed to run cleanly on Linux/Docker.
Code fixes:
- constants.py: CONJURER_DATA_DIR roots all writable bot state under one
mounted volume (per-variable overrides still win; native Pi unaffected)
- conjurer_librarian/search_bot.py + scrape_bot.py: the hardcoded Windows
DOI database path (C:\Database\chunks\) is now CONJURER_LIBRARIAN_DB_PATH,
with CONJURER_LIBRARIAN_MAXTHREADS / _CHUNK also env-overridable
Docker:
- docker/Dockerfile.{bot,librarian,musician} + compose.{bot,librarian,musician}.yaml
- docker/env/*.env.example (force-added; real *.env stays gitignored)
- docker/entrypoint.bot.sh seeds default JSON state into /data only when
absent, so preserved history is never overwritten
- .dockerignore
- docs/deployment/DOCKER_PROXMOX.md: step-by-step runbook incl. preserving
the existing command/conversation history and cross-VM auth
The bot image uses the vendored yt_dlp/spotify_dl forks (they win on
sys.path over the pip packages), dropping the old sed patching.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
31 lines
951 B
Docker
31 lines
951 B
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/ ./
|
|
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
CONJURER_MUSICIAN_HOST=0.0.0.0 \
|
|
CONJURER_MUSICIAN_PORT=5000 \
|
|
CONJURER_MUSIC_FOLDER=/music
|
|
|
|
# The mp3 library is mounted here (read-only is fine for serving).
|
|
VOLUME ["/music"]
|
|
EXPOSE 5000
|
|
|
|
CMD ["python", "conjurer_musician.py"]
|