FROM ubuntu:24.04

COPY --from=ghcr.io/astral-sh/uv:0.10.2 /uv /uvx /bin/

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    UV_PROJECT_ENVIRONMENT=/opt/venv

RUN apt-get update && apt-get install -y --no-install-recommends \
    python3 \
    python3-venv \
    libdbus-1-3 \
    libfontconfig1 \
    libegl1 \
    libgl1 \
    libglib2.0-0 \
    libsm6 \
    qt6-gtk-platformtheme \
    libwayland-client0 \
    libwayland-cursor0 \
    libwayland-egl1 \
    libxkbcommon0 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

RUN uv venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"

COPY pyproject.toml uv.lock /app/

RUN uv sync --frozen --no-dev --no-install-project --no-editable

COPY scanslicer /app/scanslicer
COPY README.md /app/

RUN uv sync --frozen --no-dev --no-editable

ENTRYPOINT ["scanslicer"]
