Skip to content

Commit

Permalink
Fix Docker build with cgroup v2 and fix #436
Browse files Browse the repository at this point in the history
  • Loading branch information
rbonghi committed Jan 9, 2024
1 parent fade473 commit e27a7b1
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 8 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
_build/
dist/
doc/
build/

# Python egg metadata, regenerated from source files by setuptools.
/*.egg-info
Expand Down
5 changes: 3 additions & 2 deletions jtop/jetson_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@
# Detect user
user = os.environ.get('USER', '')
# Get user from sudo
if 'SUDO_USER' in os.environ:
user = os.environ['SUDO_USER']
sudo_user = os.environ.get('SUDO_USER', '')
# If are both empty assign 'root'
user = sudo_user or 'root'
# Locate folder and type of installation
folder, _ = os.path.split(__file__)
folder = os.path.dirname(folder)
Expand Down
15 changes: 9 additions & 6 deletions jtop/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,8 +155,9 @@ def install_service(package_root, copy, name=JTOP_SERVICE_NAME):
def status_permission_user(group=JTOP_USER):
user = os.environ.get('USER', '')
# Get user from sudo
if 'SUDO_USER' in os.environ:
user = os.environ['SUDO_USER']
sudo_user = os.environ.get('SUDO_USER', '')
# If are both empty assign 'root'
user = sudo_user or 'root'
# Check if user is in group
cmd_group_user = Command(shlex.split('groups {user}'.format(user=user)))
try:
Expand Down Expand Up @@ -191,8 +192,9 @@ def status_permission(group=JTOP_USER):
def unset_service_permission(group=JTOP_USER):
user = os.environ.get('USER', '')
# Get user from sudo
if 'SUDO_USER' in os.environ:
user = os.environ['SUDO_USER']
sudo_user = os.environ.get('SUDO_USER', '')
# If are both empty assign 'root'
user = sudo_user or 'root'
# Check if user is in group
if status_permission_user(group):
logger.info("Remove {user} from group {group}".format(group=group, user=user))
Expand All @@ -205,8 +207,9 @@ def unset_service_permission(group=JTOP_USER):
def set_service_permission(group=JTOP_USER):
user = os.environ.get('USER', '')
# Get user from sudo
if 'SUDO_USER' in os.environ:
user = os.environ['SUDO_USER']
sudo_user = os.environ.get('SUDO_USER', '')
# If are both empty assign 'root'
user = sudo_user or 'root'
# Make jetson_stats group
if not status_permission_group(group):
logger.info("Add new group {group}".format(group=group))
Expand Down
11 changes: 11 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,22 @@ def is_virtualenv():

def is_docker():
# https://gist.github.com/anantkamath/623ce7f5432680749e087cf8cfba9b69
# https://stackoverflow.com/questions/68816329/how-to-get-docker-container-id-from-within-the-container-with-cgroup-v2
# Check on cgroup
with open('/proc/self/cgroup', 'r') as procfile:
for line in procfile:
# if is the new cgroup v2 check on mountinfo
if line.startswith("0::/"):
break
fields = line.strip().split('/')
if 'docker' in fields or 'buildkit' in fields:
return True
with open( '/proc/self/mountinfo' ) as file:
line = file.readline().strip()
while line:
if '/docker/containers/' in line:
return True
line = file.readline().strip()
return False


Expand Down

0 comments on commit e27a7b1

Please sign in to comment.