diff --git a/Dockerfile b/Dockerfile index eacd22e..802161a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -116,16 +116,22 @@ ARG USERNAME=pilot ARG USER_UID=1000 ARG USER_GID=1000 -# Create user - handle case where GID/UID 1000 may already exist +# Create user - remove any existing user/group with same UID/GID first RUN apt-get update \ && apt-get install -y sudo \ - # 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 \ + # Remove existing user with UID 1000 if it exists (e.g., 'ubuntu' user) + && existing_user=$(getent passwd $USER_UID | cut -d: -f1) \ + && if [ -n "$existing_user" ] && [ "$existing_user" != "$USERNAME" ]; then \ + userdel -r "$existing_user" 2>/dev/null || true; \ + fi \ + # Remove existing group with GID 1000 if it exists + && existing_group=$(getent group $USER_GID | cut -d: -f1) \ + && if [ -n "$existing_group" ] && [ "$existing_group" != "$USERNAME" ]; then \ + groupdel "$existing_group" 2>/dev/null || true; \ + fi \ + # Now create our user and group + && groupadd --gid $USER_GID $USERNAME \ + && useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME \ # Add sudo permissions && echo "$USERNAME ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/$USERNAME \ && chmod 0440 /etc/sudoers.d/$USERNAME \