25 lines
895 B
Docker
25 lines
895 B
Docker
# Finder scraper image. Runs via docker-compose sharing the media_gluetun VPN
|
|
# network namespace; the source tree is bind-mounted at runtime, so this image
|
|
# only needs the Python deps. The venv lives OUTSIDE the bind-mount target
|
|
# (/opt/venv) so the mount doesn't shadow it.
|
|
FROM python:3.12-slim
|
|
|
|
ENV UV_PROJECT_ENVIRONMENT=/opt/venv \
|
|
UV_COMPILE_BYTECODE=1 \
|
|
UV_LINK_MODE=copy \
|
|
PYTHONUNBUFFERED=1
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
|
|
|
|
WORKDIR /app/finder
|
|
|
|
# Install dependencies into /opt/venv (cached layer; project code is mounted at runtime).
|
|
COPY pyproject.toml uv.lock ./
|
|
RUN uv sync --no-install-project --frozen
|
|
|
|
# Source is bind-mounted over /app/finder by compose. `uv run` uses /opt/venv.
|
|
CMD ["sleep", "infinity"]
|