summaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2019-01-11 09:15:33 +0100
committerChristian Poessinger <christian@poessinger.com>2019-01-11 09:15:33 +0100
commit4c42851c53a5884b36a1a7850b7b663e4faf82c9 (patch)
treeeb09f7449662e6e49aedf58bff94ebca22c8db07 /docker
parent4004496e89d2a27cfb4cc3a87253dd9dac54e160 (diff)
downloadvyos-build-4c42851c53a5884b36a1a7850b7b663e4faf82c9.tar.gz
vyos-build-4c42851c53a5884b36a1a7850b7b663e4faf82c9.zip
Docker: create UNIX group on demand
Diffstat (limited to 'docker')
-rw-r--r--docker/Dockerfile2
-rwxr-xr-xdocker/entrypoint.sh9
2 files changed, 8 insertions, 3 deletions
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 2744d291..505660ab 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -158,7 +158,7 @@ RUN export LATEST="$(curl -s https://checkpoint-api.hashicorp.com/v1/check/packe
# Allow password-less 'sudo' for all users in group 'sudo'
RUN sed "s/^%sudo.*/%sudo\tALL=(ALL) NOPASSWD:ALL/g" -i /etc/sudoers && \
- chmod a+s /usr/sbin/useradd /usr/sbin/gosu /usr/sbin/usermod
+ chmod a+s /usr/sbin/useradd /usr/sbin/groupadd /usr/sbin/gosu /usr/sbin/usermod
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 00e1e139..8db41103 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -18,8 +18,13 @@ fi
# Notify user about selected UID/GID
echo "Current UID/GID: $NEW_UID/$NEW_GID"
-useradd --shell /bin/bash -u $NEW_UID -g $NEW_GID -o -m $USER_NAME
-usermod -aG sudo $USER_NAME
+# Create UNIX group on the fly if it does not exist
+if ! grep -q $NEW_GID /etc/group; then
+ groupadd --gid $NEW_GID $USER_NAME
+fi
+
+useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
+usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
export HOME=/home/$USER_NAME