FROM osrf/ros:jazzy-desktop-full AS builder ARG DEBIAN_FRONTEND=noninteractive # catkin-tools RUN apt-get update && apt-get install -y \ ca-certificates \ gnupg \ sudo \ curl \ wget \ && rm -rf /var/lib/apt/lists/* # PX4 dependencies WORKDIR /root RUN wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/ubuntu.sh \ && wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/Tools/setup/requirements.txt \ && chmod +x /root/ubuntu.sh \ && ./ubuntu.sh \ && rm -rf /var/lib/apt/lists/* \ && rm /root/requirements.txt /root/ubuntu.sh # COPY requirements.txt /requirements.txt # COPY ubuntu.sh /ubuntu.sh # RUN /ubuntu.sh && rm -rf /var/lib/apt/lists/* && rm /requirements.txt /ubuntu.sh # for WSL2 GPU Support ENV LD_LIBRARY_PATH=/usr/lib/wsl/lib RUN apt update && apt install -y \ mesa-utils \ vainfo \ mesa-va-drivers \ vim \ net-tools \ openssh-server \ libasio-dev \ python3-future \ libgeographiclib-dev \ ros-jazzy-eigen-stl-containers \ ros-jazzy-diagnostic-updater \ ros-jazzy-rmw-zenoh-cpp \ ros-jazzy-ros-gz \ && rm -rf /var/lib/apt/lists/* # ceres WORKDIR /root RUN apt update && apt install -y \ libgoogle-glog-dev \ libgflags-dev \ libatlas-base-dev \ libeigen3-dev \ libsuitesparse-dev \ && rm -rf /var/lib/apt/lists/* RUN wget https://github.com/ceres-solver/ceres-solver/archive/refs/tags/2.1.0.tar.gz \ && tar -zxf 2.1.0.tar.gz \ && cd ceres-solver-2.1.0 \ && mkdir build && cd build \ && cmake .. -DCXSPARSE=OFF \ && make install -j4 \ && rm -rf /root/ceres-solver-2.1.0 /root/2.1.0.tar.gz # spdlog RUN wget https://github.com/gabime/spdlog/archive/refs/tags/v1.12.0.tar.gz \ && tar -zxf v1.12.0.tar.gz \ && cd spdlog-1.12.0 \ && mkdir build && cd build \ && cmake .. -DSPDLOG_BUILD_SHARED=ON \ && make install -j \ && rm -rf /root/v1.12.0.tar.gz /root/spdlog-1.12.0