FROM python:3.12-slim AS requirements-stage

WORKDIR /tmp

COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
COPY pyproject.toml uv.lock projects/ecoindex_cli/pyproject.toml ./
RUN uv export --package ecoindex_cli --no-hashes --no-emit-workspace -o requirements.txt


FROM python:3.12-slim

ARG wheel=ecoindex_cli-2.26.0a0-py3-none-any.whl
ENV DOCKER_CONTAINER=True
WORKDIR /code

# Install runtime browser dependencies for Camoufox
RUN apt-get update && apt-get install -y --no-install-recommends \
    libgtk-3-0 \
    libx11-xcb1 \
    libasound2 \
    libdbus-glib-1-2 \
    libgbm1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt 

COPY projects/ecoindex_cli/dist/$wheel $wheel
RUN pip install --no-cache-dir $wheel

RUN python -m camoufox fetch

RUN rm -rf $wheel requirements.txt /tmp/dist /var/lib/{apt,dpkg,cache,log}/
