# Use ROS 2 Humble Hawksbill base image
FROM osrf/ros:humble-desktop-full-jammy

# Update and install dependencies
RUN apt-get update && apt-get install -y \
    python3-colcon-common-extensions python3-pip \
    ros-humble-xacro \
    ros-humble-hardware-interface \
    ros-humble-controller-interface \
    ros-humble-joy \
    ros-humble-teleop-twist-joy

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

# Create a workspace
WORKDIR /ros2_ws

# Copy your ROS 2 package into the workspace
COPY ./src /ros2_ws/src

# get all the ros dependencies
RUN rosdep update && rosdep install --ignore-src --from-paths src -y

# remove unnecessary pkgs
RUN rm -rf /var/lib/apt/lists/*

# Build your package
RUN . /opt/ros/humble/setup.sh && \
    colcon build

RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

ENV PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ros/humble/bin"

# Source the workspace
RUN echo "source install/setup.bash" >> /root/.bashrc
CMD ["/bin/bash"]