ARG PYTHON_VERSION=310
ARG BASE_IMAGE=mirror.gcr.io/rayproject/ray:latest-py${PYTHON_VERSION}-cpu
FROM $BASE_IMAGE

# Set LD_LIBRARY_PATH to avoid runtime errors (so far only experienced when running vLLM with the vllm_performance actuator)
ENV LD_LIBRARY_PATH=/home/ray/anaconda3/lib:${LD_LIBRARY_PATH}

# Pass SOURCE_DATE_EPOCH to guarantee that all the wheels built will use
# the same timestamp.
ARG SOURCE_DATE_EPOCH=0

USER 0
RUN chgrp -R 0 /home/ray && \
    chmod -R g=u /home/ray
USER 1000

# Copy source code
COPY --chown=1000:0 ./ ado

## Install ado
RUN export SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} && \
    cd ado && \
    uv pip install --system -r requirements.txt && \
    uv pip install --system --no-deps --strict \
    '.'

## Install ray-tune operator
RUN export SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} && \
    cd ado && \
    uv pip install --system \
    'plugins/operators/ray_tune/'

CMD ado -h
