Docker Update 2

This commit is contained in:
2026-01-10 22:56:43 +00:00
parent f3313eefa9
commit bbd051dcf5
4 changed files with 347 additions and 85 deletions

View File

@@ -41,22 +41,32 @@ RUN apt-get update && apt-get install -y \
python3-pip \
python3-venv \
python3-dev \
# Graphics / X11
# Graphics / X11 / Vulkan
libgl1 \
libglx-mesa0 \
libgl1-mesa-dri \
mesa-utils \
x11-apps \
# Video recording
libxcb-xinerama0 \
libxkbcommon-x11-0 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-keysyms1 \
libxcb-shape0 \
libvulkan1 \
# Video recording & codecs
ffmpeg \
xdotool \
wmctrl \
libx264-dev \
libx265-dev \
# Networking
netcat-openbsd \
# GStreamer (for ArduPilot Gazebo plugin)
# GStreamer (for ArduPilot Gazebo plugin video streaming)
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-good \
gstreamer1.0-libav \
gstreamer1.0-gl \
# OpenCV
@@ -70,12 +80,12 @@ RUN curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu noble main" > /etc/apt/sources.list.d/ros2.list \
&& apt-get update \
&& apt-get install -y \
ros-jazzy-ros-base \
ros-jazzy-geometry-msgs \
ros-jazzy-std-msgs \
ros-jazzy-nav-msgs \
ros-jazzy-sensor-msgs \
ros-jazzy-ros-gz \
ros-jazzy-ros-base \
ros-jazzy-geometry-msgs \
ros-jazzy-std-msgs \
ros-jazzy-nav-msgs \
ros-jazzy-sensor-msgs \
ros-jazzy-ros-gz \
&& rm -rf /var/lib/apt/lists/*
# =============================================================================
@@ -85,18 +95,18 @@ RUN wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pk
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable noble main" > /etc/apt/sources.list.d/gazebo-stable.list \
&& apt-get update \
&& apt-get install -y \
gz-harmonic \
# Development packages for building ardupilot_gazebo plugin
libgz-cmake3-dev \
libgz-sim8-dev \
libgz-plugin2-dev \
libgz-common5-dev \
libgz-physics7-dev \
libgz-sensors8-dev \
libgz-rendering8-dev \
libgz-transport13-dev \
libgz-msgs10-dev \
rapidjson-dev \
gz-harmonic \
# Development packages for building ardupilot_gazebo plugin
libgz-cmake3-dev \
libgz-sim8-dev \
libgz-plugin2-dev \
libgz-common5-dev \
libgz-physics7-dev \
libgz-sensors8-dev \
libgz-rendering8-dev \
libgz-transport13-dev \
libgz-msgs10-dev \
rapidjson-dev \
&& rm -rf /var/lib/apt/lists/*
# =============================================================================
@@ -106,11 +116,18 @@ ARG USERNAME=pilot
ARG USER_UID=1000
ARG USER_GID=1000
RUN groupadd --gid $USER_GID $USERNAME \
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
&& apt-get update \
# Create user - handle case where GID/UID 1000 may already exist
RUN apt-get update \
&& apt-get install -y sudo \
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
# Create group if it doesn't exist, or use existing
&& (getent group $USER_GID || groupadd --gid $USER_GID $USERNAME) \
# Create user if doesn't exist
&& (id -u $USER_UID >/dev/null 2>&1 || useradd --uid $USER_UID --gid $USER_GID -m $USERNAME) \
# Ensure home directory exists and has correct ownership
&& mkdir -p /home/$USERNAME \
&& chown $USER_UID:$USER_GID /home/$USERNAME \
# Add sudo permissions
&& echo "$USERNAME ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME \
&& chmod 0440 /etc/sudoers.d/$USERNAME \
&& rm -rf /var/lib/apt/lists/*