mrrl-containers

MRRL version of container scripts
git clone https://ccx.te2000.cz/git/mrrl-containers
Log | Files | Refs

commit ca66c465728496160bbea4d81a527b3bf08d06d1
parent 8d630e29b72120013b2f576241f2861164fec123
Author: ccx <ccx@te2000.cz>
Date:   Sun, 17 Mar 2024 00:27:04 +0000

Add xorg container definition

Diffstat:
Mzsh-functions/confz_containers_init | 46++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+), 0 deletions(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -474,6 +474,52 @@ confz_container_service_xsession_check() { content="$mnt_dirs" } +confz_container_service_xorg_check() { + local uid gid container_user_dir svc_dir container + local -a fstab + checkvars containers_dir svscan_dir image_name ttyN + defvar user xorg + defvar fstab_extra '' + defvar container_name "X$vars[ttyN]" + container=$vars[container_name] + + uid="${${(s.:.)"$(getent passwd $vars[user])"}[3]}" \ + gid="${${(s.:.)"$(getent group $vars[user])"}[3]}" \ + + require fs_d filename=$vars[containers_dir]/user/$vars[user] + require fs_m filename=$vars[containers_dir]/user/$vars[user] mode=751 + require fs_o filename=$vars[containers_dir]/user/$vars[user] owner=0:$gid + + container_user_dir=$vars[containers_dir]/user/$vars[user]/$container + require fs_d filename=$container_user_dir + require fs_m filename=$container_user_dir mode=751 + require fs_o filename=$container_user_dir owner=0:$gid + + require fs_d filename=$container_user_dir/root + + fstab=( + $vars[containers_dir]/systems/$vars[image_name]$'\t'$container_user_dir/root$'\tnone\tbind,ro,nosuid,nodev\t0 0' + /run/containers/$container.$vars[user]/run$'\t'$container_user_dir/root/run$'\tnone\tbind,nosuid,nodev\t0 0' + /run/containers/$container.$vars[user]/tmp$'\t'$container_user_dir/root/tmp$'\tnone\tbind,nosuid,nodev\t0 0' + "${(f@)vars[fstab_extra]}" + ) + + svc_dir=$vars[svscan_dir]/container.$container + require container_service_preset preset=xorg \ + svc_dir=$svc_dir control_user=0 control_group=0 \ + log_dir=/run/container-logs/$container \ + log_uid=0 log_gid=0 \ + root_link=$container_user_dir/root \ + fstab=${(F)fstab} \?down \?fstab_post + require fs_d filename=$svc_dir/env + require fs_contentnl filename=$svc_dir/env/CONTAINER_USER \ + content=$vars[user] + require fs_contentnl filename=$svc_dir/env/CONTAINER_NAME \ + content=$container + require fs_contentnl filename=$svc_dir/env/vtN \ + content=$vars[vtN] +} + # --- new image constructor () {