# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. # # NVIDIA CORPORATION and its licensors retain all intellectual property # and proprietary rights in and to this software, related documentation # and any modifications thereto. Any use, reproduction, disclosure or # distribution of this software and related documentation without an express # license agreement from NVIDIA CORPORATION is strictly prohibited. ARG BASE_IMAGE FROM ${BASE_IMAGE} # Setup non-root admin user ARG USERNAME=admin ARG USER_UID=1000 ARG USER_GID=1000 # Install prerequisites RUN --mount=type=cache,target=/var/cache/apt \ apt-get update && apt-get install -y \ sudo \ udev # Reuse triton-server user as 'admin' user if exists RUN if [ $(getent group triton-server) ]; then \ groupmod -o --gid ${USER_GID} -n ${USERNAME} triton-server ; \ usermod -l ${USERNAME} -u ${USER_UID} -m -d /home/${USERNAME} triton-server ; \ mkdir -p /home/${USERNAME} ; \ sudo chown ${USERNAME}:${USERNAME} /home/${USERNAME} ; \ # Wipe files that may create issues for users with large uid numbers. rm -f /var/log/lastlog /var/log/faillog ; \ fi # Create the 'admin' user if not already exists RUN if [ ! $(getent passwd ${USERNAME}) ]; then \ groupadd --gid ${USER_GID} ${USERNAME} ; \ useradd --no-log-init --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} ; \ fi # Update 'admin' user RUN echo ${USERNAME} ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/${USERNAME} \ && chmod 0440 /etc/sudoers.d/${USERNAME} \ && adduser ${USERNAME} video && adduser ${USERNAME} plugdev && adduser ${USERNAME} sudo # Copy scripts RUN mkdir -p /usr/local/bin/scripts COPY scripts/*entrypoint.sh /usr/local/bin/scripts/ RUN chmod +x /usr/local/bin/scripts/*.sh # Copy middleware profiles RUN mkdir -p /usr/local/share/middleware_profiles COPY middleware_profiles/*profile.xml /usr/local/share/middleware_profiles/ ENV USERNAME=${USERNAME} ENV USER_GID=${USER_GID} ENV USER_UID=${USER_UID} # Switch to non-root user and return to root USER ${USERNAME} RUN --mount=type=cache,target=/var/cache/apt \ rosdep update USER root