rov-autonomy/Dockerfile

46 lines
1.3 KiB
Docker

# ============================================================
# ROV Autonomy Stack — ARM64 Container Image
# Target: Raspberry Pi 5 running Ubuntu 24.04 LTS
# Base: ROS2 Jazzy on Ubuntu 24.04
# ============================================================
FROM ros:jazzy-ros-base-noble
# Set non-interactive apt installs
ENV DEBIAN_FRONTEND=noninteractive
# Install ROS2 dependencies and tools
RUN apt-get update && apt-get install -y \
# ROS2 packages required by the stack
ros-jazzy-mavros \
ros-jazzy-mavros-extras \
ros-jazzy-robot-localization \
ros-jazzy-cv-bridge \
ros-jazzy-image-transport \
# Python dependencies
python3-pip \
python3-opencv \
# Build tools
python3-colcon-common-extensions \
&& rm -rf /var/lib/apt/lists/*
# Install geographic datasets required by MAVROS
RUN /opt/ros/jazzy/lib/mavros/install_geographiclib_datasets.sh
# Create workspace directory
WORKDIR /ros2_ws
# Copy workspace source into image
COPY src/ src/
# Build the workspace
RUN /bin/bash -c "source /opt/ros/jazzy/setup.bash && \
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release"
# Copy and configure entrypoint
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["ros2", "launch", "rov_bringup", "rov_full.launch.py"]