35 lines
889 B
Docker
35 lines
889 B
Docker
FROM ros:jazzy-ros-base-noble
|
|
|
|
# Install pyserial
|
|
RUN apt-get update && apt-get install -y \
|
|
python3-pip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN pip3 install --break-system-packages pyserial
|
|
|
|
# Create workspace
|
|
WORKDIR /ros2_ws
|
|
|
|
# Copy the package
|
|
COPY ultrasonic_sensor /ros2_ws/src/ultrasonic_sensor
|
|
|
|
# Build the package
|
|
RUN . /opt/ros/jazzy/setup.sh && \
|
|
colcon build --packages-select ultrasonic_sensor
|
|
|
|
# Source setup in bashrc for interactive use
|
|
RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc && \
|
|
echo "source /ros2_ws/install/setup.bash" >> ~/.bashrc
|
|
|
|
# Create entrypoint script
|
|
RUN echo '#!/bin/bash\n\
|
|
set -e\n\
|
|
source /opt/ros/jazzy/setup.bash\n\
|
|
source /ros2_ws/install/setup.bash\n\
|
|
exec "$@"' > /ros2_entrypoint.sh && \
|
|
chmod +x /ros2_entrypoint.sh
|
|
|
|
ENTRYPOINT ["/ros2_entrypoint.sh"]
|
|
CMD ["ros2", "run", "ultrasonic_sensor", "ultrasonic_node"]
|
|
|