From 192fb92e2731d705c97496ccae553b97c0ee9ae7 Mon Sep 17 00:00:00 2001 From: pimpest <82343504+pimpest@users.noreply.github.com> Date: Tue, 14 Jul 2026 15:14:34 +0200 Subject: [PATCH] Added dockerfile for running the mock version --- Dockerfile.prod | 95 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Dockerfile.prod diff --git a/Dockerfile.prod b/Dockerfile.prod new file mode 100644 index 0000000..12d6538 --- /dev/null +++ b/Dockerfile.prod @@ -0,0 +1,95 @@ +FROM ros:jazzy-perception + +ENV DEBIAN_FRONTEND=noninteractive + +# ---------- System dependencies ---------- +RUN apt-get update && apt-get upgrade -yq && apt-get install -yq \ + python3-colcon-common-extensions \ + python3-rosdep \ + meson cmake \ + build-essential \ + udev \ + git + +# ---------- Libcamera ---------- + +WORKDIR /extras + +RUN apt-get install -y libboost-dev \ + libgnutls28-dev openssl libtiff5-dev \ + pybind11-dev \ + qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5 \ + python3-yaml python3-ply python3-jinja2 python3-pip\ + libglib2.0-dev libgstreamer-plugins-base1.0-dev \ + build-essential + +RUN git clone https://github.com/raspberrypi/libcamera.git \ + && cd libcamera \ + && meson setup build --buildtype=release -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled \ + && ninja -C build install + +# ---------- Initialize rosdep ---------- +RUN rosdep init || true +RUN rosdep update + +# ---------- Workspace ---------- +WORKDIR /ros_ws + +# ---------- Copy package.xml files ---------- +COPY toid_bot_description/package.xml toid_bot_description/package.xml +COPY toid_control/package.xml toid_control/package.xml +COPY toid_msgs/package.xml toid_msgs/package.xml +COPY toid_odometry/package.xml toid_odometry/package.xml +COPY toid_lidar/package.xml toid_lidar/package.xml +COPY toid_interaction/package.xml toid_interaction/package.xml +COPY toid_costmaps/package.xml toid_costmaps/package.xml +COPY toid_bt/package.xml toid_bt/package.xml +COPY toid_spinner_controller/package.xml toid_spinner_controller/package.xml +COPY toid_behaviors/package.xml toid_behaviors/package.xml +COPY toid_navigation/package.xml toid_navigation/package.xml +COPY toid_vision/package.xml toid_vision/package.xml +COPY ext/camera_ros/package.xml ext/camera_ros/package.xml +COPY ext/BehaviorTree.ROS2/ ext/BehaviorTree.ROS2/ + +# ---------- Install dependencies ---------- +RUN . /opt/ros/jazzy/setup.sh && \ + rosdep install --from-paths ./ --ignore-src -r -y --skip-keys=libcamera \ + && rm -rf /var/lib/apt/lists/* + +RUN rm -rf ./* + +RUN cat <> /root/.bashrc +source /opt/ros/jazzy/setup.bash +if [[ -f ./install/setup.bash ]]; then + source ./install/setup.bash +fi +EOF + +COPY toid_bot_description/package.xml toid_bot_description/package.xml +COPY toid_control/package.xml toid_control/package.xml +COPY toid_msgs/package.xml toid_msgs/package.xml +COPY toid_odometry/package.xml toid_odometry/package.xml +COPY toid_lidar/package.xml toid_lidar/package.xml +COPY toid_interaction/package.xml toid_interaction/package.xml +COPY toid_costmaps/package.xml toid_costmaps/package.xml +COPY toid_bt/package.xml toid_bt/package.xml +COPY toid_spinner_controller/package.xml toid_spinner_controller/package.xml +COPY toid_behaviors/package.xml toid_behaviors/package.xml +COPY toid_navigation/package.xml toid_navigation/package.xml +COPY toid_vision/package.xml toid_vision/package.xml +COPY ext/camera_ros/package.xml ext/camera_ros/package.xml +COPY ext/BehaviorTree.ROS2/ ext/BehaviorTree.ROS2/ + +RUN . /opt/ros/jazzy/setup.sh && \ + rosdep install --from-paths ./ --ignore-src -r -y --skip-keys=libcamera \ + && rm -rf /var/lib/apt/lists/* + +COPY . /ros_ws/ +RUN . /opt/ros/jazzy/setup.sh && \ + colcon build --symlink-install + +RUN chown 1000:1000 -R /ros_ws/ + +ENTRYPOINT ["/bin/bash", "-c", "source /opt/ros/$ROS_DISTRO/setup.bash && source /ros_ws/install/setup.bash && exec \"$@\"", "--"] + +CMD ["ros2", "launch", "toid_navigation", "main.py", "use_mock:=True", "use_lidar:=False"]