fix(docker): add netdata user to nvidia device group on non-Debian systems (#21358)
Ilya Mashchenko committed
Nov 27, 2025 at 15:09 UTC
5920582109d9b1a190a99ba7baeb9b91fb63b0b6
1 file changed
+34
packaging/docker/run.sh
+34
@@ -12,6 +12,9 @@ fi
12
13
# Needed to read Proxmox VMs and (LXC) containers configuration files (name resolution + CPU and memory limits)
14
function add_netdata_to_proxmox_conf_files_group() {
15
+ [ "${DOCKER_USR}" = "root" ] && return
16
+
17
+ local group_guid
18
group_guid="$(stat -c %g /host/etc/pve 2>/dev/null || true)"
19
[ -z "${group_guid}" ] && return
20
@@ -32,6 +35,34 @@ function add_netdata_to_proxmox_conf_files_group() {
35
fi
36
}
37
38
+# Needed to access NVIDIA GPU monitoring
39
+function add_netdata_to_nvidia_group() {
40
+ [ "${DOCKER_USR}" = "root" ] && return
41
+
42
+ local group_gid
43
+ group_gid="$(stat -c %g /dev/nvidiactl 2>/dev/null || true)"
44
+ [ -z "${group_gid}" ] && return
45
+
46
+ # Skip if the device is owned by root group
47
+ [ "${group_gid}" -eq 0 ] && return
48
+
49
+ if ! getent group "${group_gid}" >/dev/null; then
50
+ echo "Creating nvidia-dev group with GID ${group_gid}"
51
+ if ! addgroup --gid "${group_gid}" "nvidia-dev"; then
52
+ echo >&2 "Failed to add group nvidia-dev with GID ${group_gid}."
53
+ return
54
+ fi
55
+ fi
56
+
57
+ if ! getent group "${group_gid}" | grep -q "${DOCKER_USR}"; then
58
+ echo "Assigning ${DOCKER_USR} user to group ${group_gid}"
59
+ if ! usermod --append --groups "${group_gid}" "${DOCKER_USR}"; then
60
+ echo >&2 "Failed to add ${DOCKER_USR} user to group with GID ${group_gid}."
61
+ return
62
+ fi
63
+ fi
64
+}
65
+
66
if [ ! "${DISABLE_TELEMETRY:-0}" -eq 0 ] ||
67
[ -n "$DISABLE_TELEMETRY" ] ||
68
[ ! "${DO_NOT_TRACK:-0}" -eq 0 ] ||
@@ -88,6 +119,9 @@ if [ "${EUID}" -eq 0 ]; then
119
if [ -d "/host/etc/pve" ]; then
120
add_netdata_to_proxmox_conf_files_group || true
121
fi
122
+ if [ -e "/dev/nvidiactl" ]; then
123
+ add_netdata_to_nvidia_group || true
124
+ fi
125
else
126
echo >&2 "WARNING: Entrypoint started as non-root user. This is not officially supported and some features may not be available."
127
fi