FROM ros:foxy-ros-base@sha256:34fbe32f5b1cd3eb25f6becaaa1d293bad754d64c31d96e638e4b30ed82f9f8e
SHELL ["/bin/bash","-c"]
COPY --from=ghcr.io/astral-sh/uv:0.8.22 /uv /usr/local/bin/uv
RUN apt-get update && apt-get install -y --no-install-recommends build-essential cmake python3-colcon-common-extensions ros-foxy-rosidl-default-generators ros-foxy-std-srvs libegl1 libgl1 && rm -rf /var/lib/apt/lists/*
WORKDIR /submission
COPY ros2/him_safety_interfaces interfaces
RUN source /opt/ros/foxy/setup.bash && colcon build --base-paths interfaces --packages-select him_safety_interfaces
RUN uv python install 3.12 && uv venv /opt/inference --python 3.12
COPY runner-requirements.txt /submission/runner-requirements.txt
RUN uv pip install --python /opt/inference/bin/python -r runner-requirements.txt
COPY robot_safety /submission/robot_safety
COPY examples/policies/walker /submission/examples/policies/walker
COPY controller /submission/controller
RUN /opt/inference/bin/python /submission/controller/vendor/forehand/build_native.py
COPY runner_node.py balance_worker.py entrypoint.sh /submission/
ENV OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 PYTHONUNBUFFERED=1
ENTRYPOINT ["/bin/bash","/submission/entrypoint.sh"]
