From 78dd375ef842de9fe43e6fa1495ee19339087c92 Mon Sep 17 00:00:00 2001
From: Patrick Jentsch
Date: Tue, 10 Oct 2023 15:28:10 +0200
Subject: [PATCH] Performance update for the docker entrypoint script
---
docker-entrypoint.sh | 92 +++++++++++++++++++++++++++++++-------------
1 file changed, 65 insertions(+), 27 deletions(-)
diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh
index 49d6e4f0..5507f26c 100755
--- a/docker-entrypoint.sh
+++ b/docker-entrypoint.sh
@@ -6,50 +6,88 @@ NO_COLOR="\033[0m"
CHECK_MARK="\xE2\x9C\x93"
CROSS_MARK="\xE2\x9D\x8C"
-echo -n "Set container UID and GIDs to match the host system..."
-if [[ "${NOPAQUE_UID}" == 0 ]]; then
+if [[ "${NOPAQUE_UID}" == "0" ]]; then
echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
echo "Running as root is not allowed"
exit 1
-else
- echo ""
fi
-echo -n "- Updating docker GID ($(getent group docker | cut -d: -f3) -> ${DOCKER_GID})... "
-groupmod --gid "${DOCKER_GID}" docker > /dev/null
-if [[ "${?}" == "0" ]]; then
+
+echo "Set container UID and GIDs to match the host system..."
+
+
+##############################################################################
+# docker GID #
+##############################################################################
+if [[ "${DOCKER_GID}" == "$(getent group docker | cut -d: -f3)" ]]; then
+ echo -n "- docker GID is already matching..."
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
else
- echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
- exit 1
+ echo -n "- Updating docker GID ($(getent group docker | cut -d: -f3) -> ${DOCKER_GID})... "
+ groupmod --gid "${DOCKER_GID}" docker > /dev/null
+ if [[ "${?}" == "0" ]]; then
+ echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
+ else
+ echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
+ exit 1
+ fi
fi
-echo -n "- Updating nopaque GID ($(id -g nopaque) -> ${NOPAQUE_GID})... "
-groupmod --gid "${NOPAQUE_GID}" nopaque > /dev/null
-if [[ "${?}" == "0" ]]; then
+
+##############################################################################
+# nopaque GID #
+##############################################################################
+if [[ "${NOPAQUE_GID}" == "$(id -g nopaque)" ]]; then
+ echo -n "- nopaque GID is already matching..."
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
else
- echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
- exit 1
+ echo -n "- Updating nopaque GID ($(id -g nopaque) -> ${NOPAQUE_GID})... "
+ groupmod --gid "${NOPAQUE_GID}" nopaque > /dev/null
+ if [[ "${?}" == "0" ]]; then
+ HAS_NOPAQUE_GID_CHANGED=true
+ echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
+ else
+ echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
+ exit 1
+ fi
+
+ echo -n "- Updating nopaque directory group... "
+ chown -R :nopaque /home/nopaque
+ if [[ "${?}" == "0" ]]; then
+ echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
+ else
+ echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
+ exit 1
+ fi
fi
-echo -n "- Updating nopaque UID ($(id -u nopaque) -> ${NOPAQUE_UID})... "
-usermod --uid "${NOPAQUE_UID}" nopaque > /dev/null
-if [[ "${?}" == "0" ]]; then
+
+##############################################################################
+# nopaque UID #
+##############################################################################
+if [[ "${NOPAQUE_UID}" == "$(id -u nopaque)" ]]; then
+ echo -n "- nopaque UID is already matching..."
echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
else
- echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
- exit 1
+ echo -n "- Updating nopaque UID ($(id -u nopaque) -> ${NOPAQUE_UID})... "
+ usermod --uid "${NOPAQUE_UID}" nopaque > /dev/null
+ if [[ "${?}" == "0" ]]; then
+ echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
+ else
+ echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
+ exit 1
+ fi
+
+ echo -n "- Updating nopaque directory owner... "
+ chown -R nopaque /home/nopaque
+ if [[ "${?}" == "0" ]]; then
+ echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
+ else
+ echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
+ exit 1
+ fi
fi
-echo -n "- Updating nopaque directory owner and group... "
-chown -R nopaque:nopaque /home/nopaque
-if [[ "${?}" == "0" ]]; then
- echo -e "${GREEN_COLOR}${CHECK_MARK}${NO_COLOR}"
-else
- echo -e "${RED_COLOR}${CROSS_MARK}${NO_COLOR}"
- exit 1
-fi
exec gosu nopaque ./boot.sh ${@}