Detect new group and update environment during live session.

Detect a new group.

$ diff -q <(id --groups --name | tr ' ' '\n'|sort) <(id --groups --name $USER | tr ' ' '\n'|sort)
Files /dev/fd/63 and /dev/fd/62 differ
$ echo $?
1

Display added or removed groups using diff utility.

$ diff -y <(id --groups --name | tr ' ' '\n'|sort) <(id --groups --name $USER | tr ' ' '\n'|sort)
adm								adm
cdrom								cdrom
dip								dip
							      >	docker
lpadmin								lpadmin
lxd								lxd
milosz								milosz
plugdev								plugdev
sambashare							sambashare
sudo								sudo
$ diff  <(id --groups --name | tr ' ' '\n'|sort) <(id --groups --name $USER | tr ' ' '\n'|sort)
3a4
> docker
$ diff -u99  <(id --groups --name | tr ' ' '\n'|sort) <(id --groups --name $USER | tr ' ' '\n'|sort)
--- /dev/fd/63	2022-06-07 01:34:07.925535876 +0200
+++ /dev/fd/62	2022-06-07 01:34:07.925535876 +0200
@@ -1,9 +1,10 @@
 adm
 cdrom
 dip
+docker
 lpadmin
 lxd
 milosz
 plugdev
 sambashare
 sudo

Display new groups using comm utility.

$ comm -13  <(id --groups --name | tr ' ' '\n' | sort) <(id --groups --name $USER | tr ' ' '\n' | sort) 
docker

Inspect groups in current environment.

$ id --groups --name
milosz adm cdrom sudo dip plugdev lpadmin lxd sambashare

Inspect desired groups.

$ id --groups --name $USER
milosz adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

Detect new groups and add these to current environment automatically.

➜ eval $(comm -13  <(id --groups --name | tr ' ' '\n' | sort) <(id --groups --name $USER | tr ' ' '\n' | sort) | xargs -I{} echo newgrp {}); newgrp -

Inspect groups in current environment.

$ id
uid=1000(milosz) gid=1000(milosz) groups=1000(milosz),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),122(lpadmin),133(lxd),134(sambashare),140(docker)

Now everything will work as expected.

$ docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED       STATUS                PORTS                                       NAMES
e6caef079f86   louislam/uptime-kuma:1   "/usr/bin/dumb-init …"   4 weeks ago   Up 6 days (healthy)   0.0.0.0:3001->3001/tcp, :::3001->3001/tcp   uptime-kuma
cc9f2a1492e9   lissy93/dashy:2.0.7      "/sbin/tini -- yarn …"   4 weeks ago   Up 6 days (healthy)   0.0.0.0:8080->80/tcp, :::8080->80/tcp       my-dashboard
ko-fi