run.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env bash
  2. #
  3. # Entry point script for netdata
  4. #
  5. # Copyright: SPDX-License-Identifier: GPL-3.0-or-later
  6. #
  7. # Author : Pavlos Emm. Katsoulakis <paul@netdata.cloud>
  8. set -e
  9. echo "Netdata entrypoint script starting"
  10. if [ ${RESCRAMBLE+x} ]; then
  11. echo "Reinstalling all packages to get the latest Polymorphic Linux scramble"
  12. apk upgrade --update-cache --available
  13. fi
  14. create_group_and_assign_to_user() {
  15. local local_DOCKER_GROUP="$1"
  16. local local_DOCKER_GID="$2"
  17. local local_DOCKER_USR="$3"
  18. echo >&2 "Adding group with ID ${local_DOCKER_GID} and name '${local_DOCKER_GROUP}'"
  19. addgroup -g "${local_DOCKER_GID}" "${local_DOCKER_GROUP}" || echo >&2 "Could not add group ${local_DOCKER_GROUP} with ID ${local_DOCKER_GID}, its already there probably"
  20. echo >&2 "Adding user '${local_DOCKER_USR}' to group '${local_DOCKER_GROUP}/${local_DOCKER_GID}'"
  21. sed -i "s/:${local_DOCKER_GID}:$/:${local_DOCKER_GID}:${local_DOCKER_USR}/g" /etc/group
  22. # Make sure we use the right docker group
  23. GRP_TO_ASSIGN="$(grep ":x:${local_DOCKER_GID}:" /etc/group | cut -d':' -f1)"
  24. if [ -z "${GRP_TO_ASSIGN}" ]; then
  25. echo >&2 "Could not find group ID ${local_DOCKER_GID} in /etc/group. Check your logs and report it if this is an unrecovereable error"
  26. else
  27. echo >&2 "Group creation and assignment completed, netdata was assigned to group ${GRP_TO_ASSIGN}/${local_DOCKER_GID}"
  28. echo "${GRP_TO_ASSIGN}"
  29. fi
  30. }
  31. DOCKER_USR="netdata"
  32. DOCKER_SOCKET="/var/run/docker.sock"
  33. DOCKER_GROUP="docker"
  34. if [ -S "${DOCKER_SOCKET}" ] && [ -n "${PGID}" ]; then
  35. GRP=$(create_group_and_assign_to_user "${DOCKER_GROUP}" "${PGID}" "${DOCKER_USR}")
  36. if [ -n "${GRP}" ]; then
  37. echo "Adjusting ownership of mapped docker socket '${DOCKER_SOCKET}' to root:${GRP}"
  38. chown "root:${GRP}" "${DOCKER_SOCKET}" || echo "Failed to change ownership on docker socket, container name resolution might not work"
  39. fi
  40. fi
  41. exec /usr/sbin/netdata -u "${DOCKER_USR}" -D -s /host -p "${NETDATA_PORT}" "$@"
  42. echo "Netdata entrypoint script, completed!"