Files
streamrip-ui/backend/Dockerfile
T
loki 008c713840
CI / backend-tests (push) Successful in 11s
Docker images / backend (push) Successful in 8s
Docker images / frontend (push) Successful in 25s
CI / docker (push) Successful in 3s
feat: commit-hash in UI + korb vor downloads
2026-10-04 14:55:02 +02:00

40 lines
1.2 KiB
Docker

FROM python:3.12-slim
ARG UID=1000
ARG GID=1000
# HOME=/tmp: streamrip legt beim Import ~/.config an. Mit user:-Overrides
# (UID ohne passwd-Eintrag) würde das auf '/.config' fallen und scheitern.
# Die echte Config liegt ohnehin in STREAMRIP_CONFIG.
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1 \
STREAMRIP_CONFIG=/config/config.toml \
STREAMRIP_DOWNLOAD_DIR=/downloads \
BACKEND_PORT=8000 \
HOME=/tmp
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg git \
&& rm -rf /var/lib/apt/lists/* \
&& groupadd -g "$GID" appuser \
&& useradd -u "$UID" -g "$GID" -m -s /bin/false appuser
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt && pip install --no-cache-dir "git+https://github.com/nathom/streamrip.git@v2.2.0"
COPY app ./app
RUN chown -R appuser:appuser /app
ARG VERSION=dev
ENV APP_VERSION=$VERSION
ARG GIT_SHA=dev
ENV APP_COMMIT=$GIT_SHA
USER appuser
EXPOSE 8000
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
CMD python -c "import os, urllib.request; urllib.request.urlopen(f'http://localhost:{os.environ.get(\"BACKEND_PORT\", \"8000\")}/api/health')"
CMD uvicorn app.main:app --host 0.0.0.0 --port ${BACKEND_PORT:-8000}