@@ -18,7 +18,6 @@ RUN apt-get -q update \
18
18
clang-tools \
19
19
python3-pip \
20
20
python3-dev \
21
- python3-venv \
22
21
lsb-release \
23
22
wget \
24
23
gnupg \
@@ -39,14 +38,14 @@ RUN apt-get -q update \
39
38
40
39
FROM ci AS robot
41
40
42
- #
43
- # Ubuntu 24.04 "Noble", which is used as the base image for
44
- # jazzy and rolling images, now includes a user "ubuntu" at UID 1000
45
- ARG USERNAME=ubuntu
41
+ # Configure a new non-root user
42
+ ARG USERNAME=blue
46
43
ARG USER_UID=1000
47
44
ARG USER_GID=$USER_UID
48
45
49
- RUN echo $USERNAME ALL=\( root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
46
+ RUN groupadd --gid $USER_GID $USERNAME \
47
+ && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
48
+ && echo $USERNAME ALL=\( root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
50
49
&& chmod 0440 /etc/sudoers.d/$USERNAME \
51
50
&& usermod -a -G dialout $USERNAME \
52
51
&& echo "source /usr/share/bash-completion/completions/git" >> /home/$USERNAME/.bashrc
@@ -57,17 +56,6 @@ ENV DEBIAN_FRONTEND=noninteractive
57
56
USER $USERNAME
58
57
ENV USER=$USERNAME
59
58
60
- # Python in Ubuntu is now marked as a "Externally managed environment",
61
- # Per best practice, create a venv for local python packages
62
- # Is there a more elegant way to handle this?
63
- #
64
- # These two ENVs effectively "activate" the venv for subsequent calls to
65
- # python/pip in the Dockerfile
66
- WORKDIR /home/$USERNAME
67
- ENV VIRTUAL_ENV=/home/$USERNAME/.venv/blue
68
- RUN python3 -m venv --system-site-packages --symlinks $VIRTUAL_ENV
69
- ENV PATH="$VIRTUAL_ENV/bin:$PATH"
70
-
71
59
# Install MAVROS dependencies
72
60
WORKDIR /home/$USERNAME
73
61
RUN wget https://raw.githubusercontent.com/mavlink/mavros/ros2/mavros/scripts/install_geographiclib_datasets.sh \
@@ -109,13 +97,12 @@ RUN sudo apt-get -q update \
109
97
&& sudo rm -rf /var/lib/apt/lists/*
110
98
111
99
RUN echo "source ${USER_WORKSPACE}/install/setup.bash" >> /home/$USERNAME/.bashrc \
112
- && echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> /home/$USERNAME/.bashrc \
113
- && echo "\n # Ensure colcon is run in the venv\n alias colcon='python3 -m colcon'" >> /home/$USERNAME/.bashrc
100
+ && echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> /home/$USERNAME/.bashrc
114
101
115
102
FROM robot AS desktop
116
103
117
104
ENV DEBIAN_FRONTEND=noninteractive
118
- ENV GZ_VERSION=harmonic
105
+ ENV GZ_VERSION=${GZ_VERSION:- harmonic}
119
106
120
107
# Gazebo Binary availability:
121
108
# Humble: Garden
@@ -143,7 +130,6 @@ RUN sudo apt-get -q update \
143
130
xterm \
144
131
libgz-sim?-dev \
145
132
rapidjson-dev \
146
- cppzmq-dev \
147
133
libopencv-dev \
148
134
&& sudo apt-get autoremove -y \
149
135
&& sudo apt-get clean -y \
0 commit comments