eProsima / foonathan_memory_vendor

foonathan/memory vendor package for Fast DDS. Looking for commercial support? Contact info@eprosima.com
Apache License 2.0
24 stars 46 forks source link

Installation failure in dockerfile [ubuntu focal] #52

Closed JohnnyLiu2886 closed 2 years ago

JohnnyLiu2886 commented 3 years ago

In order to install PX4 and Mavros on the Jetson nano. I created a dockerfile which uses docker image "ros:foxy-ros-core-focal". It is installed with ros2-foxy.

In order to install PX4, I need to install Fast-DDS. Before the installation of Fast-DDS, foonathan_memory_vendor is needed. I have installed it on the jetson nano successfully but I failed to install it to the docker container which is using ros2-foxy and ubuntu 20.04.

The following error always comes out no matter installing from source or binary. " /foonathan_memory_vendor/../share/foonathan_memory-i86Win32VS2019/cmake/foonathan_memory-config.cmake" is always not found.

It is a static path written to the "foonathan_memory-config.cmake". From the path, "i86Win32VS2019" seems to be something related to visual studio. Do I need to install visual studio code in the docker container before installing foonathan_memory_vendor?

image

Here is my code:

`FROM ros:foxy-ros-core-focal RUN rm /bin/sh && ln -s /bin/bash /bin/sh

RUN apt-get update && apt install -y \ git \ python3-vcstool \ python3-rosinstall-generator \ python3-osrf-pycommon \ software-properties-common \ protobuf-compiler \ g++ \ make \ libprotobuf-dev \ protobuf-compiler \ openjdk-8-jdk \ curl \ unzip \ zip

RUN \ cd /usr/local && \ curl -L https://services.gradle.org/distributions/gradle-7.2-bin.zip -o gradle-7.2-bin.zip && \ unzip gradle-7.2-bin.zip && \ rm gradle-7.2-bin.zip

ENV GRADLE_HOME=/usr/local/gradle-7.2 ENV PATH=$PATH:$GRADLE_HOME/bin RUN gradle -v

RUN apt-get update && apt install -y \ tar COPY cmake-3.21.2.tar.gz . RUN tar -xvzf cmake-3.21.2.tar.gz

WORKDIR cmake-3.21.2 RUN ./bootstrap RUN make RUN make install

RUN apt-get update && apt install -y \ python2 \ python3-colcon-common-extensions \ ros-foxy-ament-cmake-python \ apt-utils \ python3-rosdep

WORKDIR / RUN apt-get update && apt install -y \ wget \ python3-pip RUN git clone https://github.com/eProsima/foonathan_memory_vendor.git WORKDIR foonathan_memory_vendor WORKDIR build RUN cmake .. RUN cmake --build . --target install`

The error occurs in the final "RUN cmake ..".

JLBuenoLopez commented 2 years ago

Hi @JohnnyLiu2886,

The docker rps:foxy-ros-core-focal already has installed Fast DDS (default middleware for ROS 2 Foxy) and thus, it also has installed all its dependencies. If you run

ls /opt/ros/foxy/lib | grep foonathan

you will see that libfoonathan_memory-0.6.2.a is already installed within the docker container. You can also run a similar command and see that libfastrtps.so.2.1.1 is also installed.