FROM osrf/ros:jazzy-desktop-full RUN apt-get update RUN apt-get -y install qterminal mesa-utils \ libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ docker-compose \ python3.12-venv \ python3-pip \ gstreamer1.0-libav \ gstreamer1.0-gl \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-ugly \ ros-${ROS_DISTRO}-rmw-cyclonedds-cpp COPY --from=git.spirirobotics.com/spiri/gazebo-resources:main /plugins /ardupilot_gazebo/plugins COPY --from=git.spirirobotics.com/spiri/gazebo-resources:main /models /ardupilot_gazebo/models COPY --from=git.spirirobotics.com/spiri/gazebo-resources:main /worlds /ardupilot_gazebo/worlds ENV GZ_SIM_SYSTEM_PLUGIN_PATH=/ardupilot_gazebo/plugins ENV GZ_SIM_RESOURCE_PATH=/ardupilot_gazebo/models:/ardupilot_gazebo/worlds COPY ./gz_entrypoint.sh /gz_entrypoint.sh RUN chmod +x /gz_entrypoint.sh WORKDIR /app RUN python3 -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" RUN pip3 install poetry COPY ./pyproject.toml ./poetry.lock ./README.md ./ COPY ./spiri_sdk_guitools ./spiri_sdk_guitools RUN poetry env use python3 RUN poetry config virtualenvs.create false && poetry install --no-dev --no-interaction --no-ansi CMD poetry run python3 spiri_sdk_guitools/launcher.py