From e333427f94313c5c12b6796f75de70db9bb5affe Mon Sep 17 00:00:00 2001 From: Adrian Gebhart Date: Mon, 6 Dec 2021 13:18:09 +0100 Subject: [PATCH] fix docker permissions, check if group id already exists before adding a group Signed-off-by: Adrian Gebhart --- Containers/mastercontainer/start.sh | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) mode change 100644 => 100755 Containers/mastercontainer/start.sh diff --git a/Containers/mastercontainer/start.sh b/Containers/mastercontainer/start.sh old mode 100644 new mode 100755 index 55921926..6b274ad1 --- a/Containers/mastercontainer/start.sh +++ b/Containers/mastercontainer/start.sh @@ -15,9 +15,20 @@ elif ! mountpoint -q "/mnt/docker-aio-config"; then exit 1 elif ! sudo -u www-data test -r /var/run/docker.sock; then echo "Trying to fix docker.sock permissions internally..." - GROUP="$(stat -c '%g' /var/run/docker.sock)" - groupadd -g "$GROUP" docker && \ - usermod -aG docker www-data + + DOCKER_GROUP=$(stat -c '%G' /var/run/docker.sock) + DOCKER_GROUP_ID=$(stat -c '%g' /var/run/docker.sock) + # check if a group with the same group id of /var/run/docker.socket already exists in the container + if grep -q "^$DOCKER_GROUP:" /etc/group; then + #if yes, add www-data to that group + echo "Adding internal www-data to group $DOCKER_GROUP" + usermod -aG "$DOCKER_GROUP" www-data + else + #if the group doesn't exist, create it + echo "Creating docker group internally with id $DOCKER_GROUP_ID" + groupadd -g "$DOCKER_GROUP_ID" docker + usermod -aG docker www-data + fi if ! sudo -u www-data test -r /var/run/docker.sock; then echo "Docker socket is not readable by the www-data user. Cannot continue." exit 1