FROM nvidia/cuda:12.4.0-devel-ubuntu20.04

# Set up environment variables
ENV DEBIAN_FRONTEND=noninteractive
ENV PATH="/opt/conda/bin:$PATH"

# Install basic dependencies
RUN apt update && apt install -y \
    git wget curl build-essential \
    && rm -rf /var/lib/apt/lists/*

# Install Miniconda
RUN curl -fsSL https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -o /miniconda.sh && \
    bash /miniconda.sh -b -p /opt/conda && \
    rm /miniconda.sh && \
    /opt/conda/bin/conda init

RUN conda config --add channels conda-forge 

RUN eval "$(conda shell.bash hook)"

# Create Conda environment
ENV CONDA_ENV_NAME=kaleidoscope
RUN conda create --prefix /opt/conda/envs/$CONDA_ENV_NAME python=3.11 uv -y

# Activate Conda in the container
SHELL ["/bin/bash", "-c"]
RUN echo "conda activate $CONDA_ENV_NAME" >> ~/.bashrc

# Set working directory (inside container)
WORKDIR /eval/
# Copy requirements.txt and install dependencies
COPY requirements.txt /eval/


RUN conda run -n $CONDA_ENV_NAME uv pip install -r requirements.txt
RUN conda run -n $CONDA_ENV_NAME uv pip install "torch==2.6.0"
# RUN conda run -n $CONDA_ENV_NAME uv pip install "vllm==0.8.4"
RUN conda run -n $CONDA_ENV_NAME uv pip install "vllm==0.8.1"
RUN conda run -n $CONDA_ENV_NAME uv pip install flash-attn --no-build-isolation
RUN conda run -n $CONDA_ENV_NAME uv pip install tenacity


RUN apt update && apt install -y unzip

# Entrypoint to activate Conda and start Bash
CMD ["bash"]

