Docker Update 3
This commit is contained in:
22
Dockerfile
22
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 \
|
||||
|
||||
Reference in New Issue
Block a user