75 lines
2.1 KiB
Docker
75 lines
2.1 KiB
Docker
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-foxglove-bridge \
|
|
ros-jazzy-plotjuggler-ros \
|
|
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
|
|
|
|
COPY zenoh_setup.sh /etc/zenoh_setup.sh
|
|
RUN echo "source /etc/zenoh_setup.sh" >> ~/.bashrc
|