FROM python:3.12-slim-bookworm

WORKDIR /app

# udev ist raus (23.07.): udevadm lieferte im Container nie Daten (kein udevd) —
# die Geräte-Erkennung läuft jetzt über /sys + ioctls.
# nfs-common/cifs-utils: Netzwerk-Speicherziele werden aus dem UI heraus
# eingehängt (mounts.py, braucht CAP_SYS_ADMIN aus dem Compose).
RUN apt-get update && apt-get install -y --no-install-recommends \
    nfs-common \
    cifs-utils \
    smbclient \
    && rm -rf /var/lib/apt/lists/*

COPY docker/api/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY docker/api/ .

# Worker-Selbstversorgung: die API liefert Installer + Worker-Code an
# native Worker aus (GET /worker-setup/windows bzw. /worker-setup/paket) —
# die Zielmaschine braucht weder git noch Docker.
COPY docker/worker/*.py docker/worker/requirements.txt worker_dist/
COPY deploy/worker-windows/install.ps1 deploy/worker-windows/install-gui.ps1 worker_dist/

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--app-dir", "/app"]
