|
| 1 | +FROM ubuntu:20.04 |
| 2 | +LABEL maintainer="Robert Budai, <robert.budai@analog.com>" |
| 3 | +ARG DEBIAN_FRONTEND=noninteractive |
| 4 | + |
| 5 | +# Install updates to base image |
| 6 | +RUN \ |
| 7 | + apt-get update -y \ |
| 8 | + && apt-get install -y git \ |
| 9 | + && apt-get install -y cmake \ |
| 10 | + && apt-get install -y build-essential \ |
| 11 | + && apt-get install apt-utils |
| 12 | + |
| 13 | +# Install Glog |
| 14 | +RUN \ |
| 15 | + git clone -b v0.6.0 --depth 1 https://github.com/google/glog \ |
| 16 | + && cd glog \ |
| 17 | + && mkdir build_0_6_0 && cd build_0_6_0 \ |
| 18 | + && cmake -DWITH_GFLAGS=off -DCMAKE_INSTALL_PREFIX=/opt/glog .. \ |
| 19 | + && cmake --build . --target install |
| 20 | + |
| 21 | +# Install Libwebsoocket |
| 22 | +RUN \ |
| 23 | + git clone --branch v3.1-stable --depth 1 https://github.com/warmcat/libwebsockets \ |
| 24 | + && cd libwebsockets \ |
| 25 | + && mkdir build_3_1 && cd build_3_1 \ |
| 26 | + && cmake -DLWS_WITH_SSL=OFF -DLWS_STATIC_PIC=ON -DCMAKE_INSTALL_PREFIX=/opt/websockets .. \ |
| 27 | + && cmake --build . --target install |
| 28 | + |
| 29 | +# Install Protobuf |
| 30 | +RUN \ |
| 31 | + git clone --branch v3.9.0 --depth 1 https://github.com/protocolbuffers/protobuf \ |
| 32 | + && cd protobuf \ |
| 33 | + && mkdir build_3_9_0 && cd build_3_9_0 \ |
| 34 | + && cmake -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/protobuf ../cmake \ |
| 35 | + && cmake --build . --target install |
| 36 | + |
| 37 | +# Install ToF SDK |
| 38 | +RUN \ |
| 39 | + git clone https://github.com/analogdevicesinc/ToF \ |
| 40 | + && cd ToF \ |
| 41 | + && mkdir build && cd build \ |
| 42 | + && cmake -DWITH_NETWORK=1 -DWITH_EXAMPLES=off -DCMAKE_PREFIX_PATH="/opt/glog;/opt/protobuf;/opt/websockets" .. \ |
| 43 | + && cmake --build . --target install |
| 44 | + |
| 45 | +# Install ROS2 |
| 46 | +RUN \ |
| 47 | + locale \ |
| 48 | + && apt-get update && apt-get install locales \ |
| 49 | + && locale-gen en_US en_US.UTF-8 \ |
| 50 | + && update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 \ |
| 51 | + && export LANG=en_US.UTF-8 |
| 52 | +RUN \ |
| 53 | + apt-get install -y software-properties-common \ |
| 54 | + && add-apt-repository universe \ |
| 55 | + && apt-get update \ |
| 56 | + && apt-get install -y curl |
| 57 | +RUN \ |
| 58 | + curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg \ |
| 59 | + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null \ |
| 60 | + && apt-get update \ |
| 61 | + && apt-get upgrade -y |
| 62 | +RUN \ |
| 63 | + apt-get install -y ros-galactic-desktop python3-argcomplete \ |
| 64 | + && apt-get install -y python3-colcon-common-extensions |
| 65 | + |
| 66 | +# Install Tof ROS2 |
| 67 | +RUN \ |
| 68 | + mkdir ros2_ws && cd ros2_ws && mkdir src \ |
| 69 | + && cd src \ |
| 70 | + && git clone https://github.com/analogdevicesinc/tof-ros2 |
| 71 | + |
| 72 | +RUN \ |
| 73 | + cd ros2_ws \ |
| 74 | + && source /opt/ros/galactic/setup.bash \ |
| 75 | + && colcon build |
0 commit comments