# Built from the project root, once scripts/export_runtime.py has filled build/runtime:
#   docker buildx build --platform linux/arm64 --load -f package/Dockerfile -t pingpong-g1:local .
FROM ros:foxy-ros-base
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential cmake python3-colcon-common-extensions python3-numpy \
    ros-foxy-rosidl-default-generators ros-foxy-rmw-fastrtps-cpp ros-foxy-std-srvs \
    && rm -rf /var/lib/apt/lists/*
WORKDIR /submission
COPY vendor/g1-builder-kit/ros2/him_safety_interfaces /submission/interfaces
RUN source /opt/ros/foxy/setup.bash && colcon build --base-paths interfaces --packages-select him_safety_interfaces
COPY src/pingpong/__init__.py src/pingpong/xp.py /submission/pingpong/
COPY src/pingpong/robot/__init__.py src/pingpong/robot/profile.py /submission/pingpong/robot/
COPY src/pingpong/control/__init__.py src/pingpong/control/numpy_policy.py src/pingpong/control/robot_loop.py src/pingpong/control/runtime.py /submission/pingpong/control/
COPY package/policy_node.py package/entrypoint.sh build/runtime/policy.npz build/runtime/runtime.npz /submission/
ENV PYTHONPATH=/submission
ENTRYPOINT ["/bin/bash", "/submission/entrypoint.sh"]
