spiri-sdk/guiTools/Dockerfile

57 lines
2.2 KiB
Docker

FROM osrf/ros:jazzy-desktop-full
ENV ROS_DISTRO=jazzy
RUN apt-get update -y
#Debugging tools
RUN apt-get install -y wget lsb-release curl gnupg net-tools inetutils-ping build-essential qterminal
#Gazebo Install
RUN curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
RUN echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
RUN apt-get update -y
RUN apt-get install -y nano \
libgz-sim8-dev \
rapidjson-dev \
libopencv-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav \
gstreamer1.0-gl \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly
RUN apt-get install -y \
ros-${ROS_DISTRO}-xacro \
ros-${ROS_DISTRO}-gazebo-msgs \
ros-${ROS_DISTRO}-ros-gz
ENV workspace=/home/gz-workspace/ardupilot_gazebo
WORKDIR ${workspace}/
#Burak: Copy ardupilot_gazebo files from local to the image.
# I didn't do git pull because this is working right now.
# I don't want to pull where github/ardupilot_gazebo might push breaking changes and this sdk would stop working in the next build.
COPY ./ardupilot_gazebo ${workspace}/
COPY --link --from=git.spirirobotics.com/spiri/gazebo-resources:main /models /${workspace}/models/
COPY --link --from=git.spirirobotics.com/spiri/gazebo-resources:main /worlds /${workspace}/worlds/
RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc
RUN echo "export GZ_SIM_SYSTEM_PLUGIN_PATH=${workspace}/build:$GZ_SIM_SYSTEM_PLUGIN_PATH" >> ~/.bashrc
RUN echo "export GZ_SIM_RESOURCE_PATH=${workspace}/models:${workspace}/worlds:$GZ_SIM_RESOURCE_PATH" >> ~/.bashrc
ENV GZ_SIM_SYSTEM_PLUGIN_PATH=${workspace}/build
ENV GZ_SIM_RESOURCE_PATH=${workspace}/models:/home/gz-workspace/ardupilot_gazebo/worlds
WORKDIR ${workspace}/build
RUN cmake ..
RUN make -j16
RUN make install
WORKDIR ${workspace}
COPY ./spawn_drones.sh /spawn_drones.sh
RUN chmod +x /spawn_drones.sh
COPY ./launcher.py /launcher.py
CMD python3 /launcher.py