Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 2b31a901 rédigé par Lionel GENEVE's avatar Lionel GENEVE
Parcourir les fichiers

Fix format.

Fix user creation error for group
parent b0ebfed8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #104905 réussi
# syntax=docker/dockerfile:1
ARG ROS_DISTRO=jazzy
ARG ROS_VARIANT=ros-base # ros-base, ros-core, desktop
FROM ros:${ROS_DISTRO}-${ROS_VARIANT}
ARG USER_NAME=user
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ENV WS_DIR=/home/$USER_NAME/workspace
ENV ROS_WS=${WS_DIR}/ros2_ws
# Install some dependencies packages
RUN apt-get update -q \
&& apt-get upgrade -q -y \
&& apt-get install -y --no-install-recommends \
software-properties-common \
ninja-build \
python3 \
python3-dev \
python3-pip \
python3-setuptools \
python3-wheel \
python3-venv \
python3-numpy \
python3-scipy \
python3-matplotlib \
python3-colcon-common-extensions \
gcc-arm-none-eabi \
xauth \
sudo \
git \
wget \
nano \
;
RUN apt-get install -y --no-install-recommends \
astyle \
build-essential \
ccache \
cmake \
cppcheck \
file \
g++ \
gcc \
gdb \
lcov \
libssl-dev \
libxml2-dev \
libxml2-utils \
make \
rsync \
shellcheck \
unzip \
zip \
automake \
binutils-dev \
bison \
flex \
g++-multilib \
gcc-multilib \
gdb-multiarch \
genromfs \
gettext \
gperf \
kconfig-frontends \
libelf-dev \
libexpat-dev \
libgmp-dev \
libisl-dev \
libmpc-dev \
libmpfr-dev \
libncurses-dev \
libncurses6 \
libncursesw6 \
libnewlib-arm-none-eabi \
libstdc++-arm-none-eabi-newlib \
libtool \
libunwind-dev \
pkg-config \
texinfo \
u-boot-tools \
util-linux \
;
# Install Gazebo Harmonic
RUN wget https://packages.osrfoundation.org/gazebo.gpg -O /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 && apt-get install -y \
libgz-cmake3-dev \
libgz-plugin2-dev \
libgz-common5-dev \
ros-${ROS_DISTRO}-nav2-common \
ros-${ROS_DISTRO}-ros-gz \
ros-${ROS_DISTRO}-joy \
# gz-harmonic \
;
# Clean apt cache
RUN apt clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Create and switch to user
RUN groupadd -g $USER_GID $USER_NAME \
&& useradd -lm -u $USER_UID -g $USER_NAME -s /bin/bash $USER_NAME \
&& echo "$USER_NAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
USER $USER_NAME
# Create workspace so that user own this directory
RUN mkdir -p $ROS_WS/src
WORKDIR $WS_DIR
# Get PX4-Autopilot Python requirements
RUN wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/refs/tags/v1.15.2/Tools/setup/requirements.txt
# Setup Python3 virtual environment
RUN python3 -m venv $WS_DIR/py3_venv
RUN . $WS_DIR/py3_venv/bin/activate \
&& pip3 install -r requirements.txt \
&& pip3 install catkin_pkg lark \
&& deactivate \
&& rm requirements.txt
# Setup bashrc
## Make ros2 public to the system via `source` command
RUN echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> /home/$USER_NAME/.bashrc
## Check if own build has been made; if yes, source it
RUN echo "if [ -f \"$ROS_WS/install/setup.bash\" ]; then" >> /home/$USER_NAME/.bashrc \
&& echo " source $ROS_WS/install/setup.bash" >> /home/$USER_NAME/.bashrc \
&& echo "else" >> /home/$USER_NAME/.bashrc \
&& echo " echo \"$ROS_WS/install/setup.bash has not yet been created.\"" >> /home/$USER_NAME/.bashrc \
&& echo " echo \"Make sure to build your package(s).\"" >> /home/$USER_NAME/.bashrc \
&& echo "fi" >> /home/$USER_NAME/.bashrc
WORKDIR $ROS_WS
# Setup entrypoint
COPY ./ros_entrypoint.sh /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
# syntax=docker/dockerfile:1
ARG ROS_DISTRO=jazzy
ARG ROS_VARIANT=ros-base # ros-base, ros-core, desktop
FROM ros:${ROS_DISTRO}-${ROS_VARIANT}
ARG USER_NAME=user
ARG USER_UID=1000
ARG USER_GID=$USER_UID
ENV WS_DIR=/home/$USER_NAME/workspace
ENV ROS_WS=${WS_DIR}/ros2_ws
# Install some dependencies packages
RUN apt-get update -q \
&& apt-get upgrade -q -y \
&& apt-get install -y --no-install-recommends \
software-properties-common \
ninja-build \
python3 \
python3-dev \
python3-pip \
python3-setuptools \
python3-wheel \
python3-venv \
python3-numpy \
python3-scipy \
python3-matplotlib \
python3-colcon-common-extensions \
gcc-arm-none-eabi \
xauth \
sudo \
git \
wget \
nano \
;
RUN apt-get install -y --no-install-recommends \
astyle \
build-essential \
ccache \
cmake \
cppcheck \
file \
g++ \
gcc \
gdb \
lcov \
libssl-dev \
libxml2-dev \
libxml2-utils \
make \
rsync \
shellcheck \
unzip \
zip \
automake \
binutils-dev \
bison \
flex \
g++-multilib \
gcc-multilib \
gdb-multiarch \
genromfs \
gettext \
gperf \
kconfig-frontends \
libelf-dev \
libexpat-dev \
libgmp-dev \
libisl-dev \
libmpc-dev \
libmpfr-dev \
libncurses-dev \
libncurses6 \
libncursesw6 \
libnewlib-arm-none-eabi \
libstdc++-arm-none-eabi-newlib \
libtool \
libunwind-dev \
pkg-config \
texinfo \
u-boot-tools \
util-linux \
;
# Install Gazebo Harmonic
RUN wget https://packages.osrfoundation.org/gazebo.gpg -O /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 && apt-get install -y \
libgz-cmake3-dev \
libgz-plugin2-dev \
libgz-common5-dev \
ros-${ROS_DISTRO}-nav2-common \
ros-${ROS_DISTRO}-ros-gz \
ros-${ROS_DISTRO}-joy \
# gz-harmonic \
;
# Clean apt cache
RUN apt clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Create and switch to user
RUN if id -u $USER_UID ; then userdel `id -un $USER_UID` ; fi
RUN groupadd -g $USER_GID $USER_NAME \
&& useradd -lm -u $USER_UID -g $USER_GID -s /bin/bash $USER_NAME \
&& echo $USER_NAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USER_NAME \
&& chmod 0440 /etc/sudoers.d/$USER_NAME
USER $USER_NAME
# Create workspace so that user own this directory
RUN mkdir -p $ROS_WS/src
WORKDIR $WS_DIR
# Get PX4-Autopilot Python requirements
RUN wget https://raw.githubusercontent.com/PX4/PX4-Autopilot/refs/tags/v1.15.2/Tools/setup/requirements.txt
# Setup Python3 virtual environment
RUN python3 -m venv $WS_DIR/py3_venv
RUN . $WS_DIR/py3_venv/bin/activate \
&& pip3 install -r requirements.txt \
&& pip3 install catkin_pkg lark \
&& deactivate \
&& rm requirements.txt
# Setup bashrc
## Make ros2 public to the system via `source` command
RUN echo "source /opt/ros/$ROS_DISTRO/setup.bash" >> /home/$USER_NAME/.bashrc
## Check if own build has been made; if yes, source it
RUN echo "if [ -f \"$ROS_WS/install/setup.bash\" ]; then" >> /home/$USER_NAME/.bashrc \
&& echo " source $ROS_WS/install/setup.bash" >> /home/$USER_NAME/.bashrc \
&& echo "else" >> /home/$USER_NAME/.bashrc \
&& echo " echo \"$ROS_WS/install/setup.bash has not yet been created.\"" >> /home/$USER_NAME/.bashrc \
&& echo " echo \"Make sure to build your package(s).\"" >> /home/$USER_NAME/.bashrc \
&& echo "fi" >> /home/$USER_NAME/.bashrc
WORKDIR $ROS_WS
# Setup entrypoint
COPY ./ros_entrypoint.sh /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter