FROM rockylinux:9.3

RUN dnf install -y gcc \
    && dnf clean all

ENV UV_COMPILE_BYTECODE=1
ENV PIP_NO_CACHE_DIR=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1

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

ARG AIRFLOW_VERSION=2.11.0
ARG PYTHON_VERSION=3.10

RUN uv venv /opt/venv --python=${PYTHON_VERSION}

ENV VIRTUAL_ENV=/opt/venv
ENV PATH="/opt/venv/bin:$PATH"

# WARNING: Install pendulum first because Airflow version 2.7 does not compatible
#   if it more than 3.0.0
RUN uv pip install -U pip \
    && uv pip install "pendulum<3.0.0" \
    && uv pip install "apache-airflow[google]==${AIRFLOW_VERSION}" \
      --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"

# NOTE: Force change version of necessary version of deps package for Jett Tool.
RUN uv pip install \
      "pydantic==2.9.2" \
      "pyarrow==21.0.0"

COPY . .

RUN uv pip install -e .

ENV PYTHONPATH="/opt/airflow/:/opt/airflow/plugins/:$PYTHONPATH"

WORKDIR /opt/airflow
