mrrl-containers

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

commit 837cc825fdab481bbb268a3230eaadae8776d91d
parent 119ab93195c596608358f449e618f0e049f78b18
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Sat, 25 Jun 2022 13:22:57 +0200

Mount logs in xsession
Diffstat:
Mservice_scripts/generic/finish | 3++-
Mservice_scripts/xsession/run | 3++-
Mzsh-functions/confz_containers_init | 10++++++++--
3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/service_scripts/generic/finish b/service_scripts/generic/finish @@ -9,4 +9,5 @@ multisubstitute { # define CONTAINER_DATA /mnt/volumes/containers/user/${CONTAINER_USER}/${CONTAINER_NAME} } foreground { umount --recursive data/root } -rm -rf ${CONTAINER_TMPFS} +foreground { rm -rf ${CONTAINER_TMPFS} } +s6-svc -a log # rotate the log diff --git a/service_scripts/xsession/run b/service_scripts/xsession/run @@ -11,6 +11,7 @@ multisubstitute { define CONTAINER_TMPFS /run/containers/${CONTAINER_NAME}.${CONTAINER_USER} # define CONTAINER_DATA /mnt/volumes/containers/user/${CONTAINER_USER}/${CONTAINER_NAME} define -s tmpfs_dirs "home run tmp inbox run/inbox tmp/.X11-unix" + importas -D ns -s -C -u CONTAINER_MNT_DIRS CONTAINER_MNT_DIRS } getpid NS_PID @@ -23,7 +24,7 @@ foreground { } if { rm -rf ${CONTAINER_TMPFS} } -if { mkdir -p ${CONTAINER_TMPFS}/${tmpfs_dirs} } +if { mkdir -p ${CONTAINER_TMPFS}/${tmpfs_dirs} ${CONTAINER_TMPFS}/mnt/${CONTAINER_MNT_DIRS} } if { chmod 1770 ${CONTAINER_TMPFS}/${tmpfs_dirs} } if { chown root:${CONTAINER_USER} ${CONTAINER_TMPFS}/${tmpfs_dirs} } if { mount -a --fstab data/fstab } diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -106,7 +106,7 @@ confz_container_service_check() { confz_container_service_log_check() { checkvars svc_dir log_dir log_uid log_gid - defvar log_umask 007 + defvar log_umask 027 local -a runscript=( '#!/command/execlineb -P' @@ -389,9 +389,10 @@ confz_container_service_alsa_check() { confz_container_service_xsession_check() { local uid gid container_user_dir svc_dir container - local -a fstab + local -a fstab mnt_dirs checkvars containers_dir svscan_dir image_name user display_number defvar fstab_extra '' + defvar mnt_dirs_extra '' container=xsession.$vars[display_number] uid="${${(s.:.)"$(getent passwd $vars[user])"}[3]}" \ @@ -415,12 +416,15 @@ confz_container_service_xsession_check() { require fs_l filename=$vars[containers_dir]/home/$vars[user]/$container \ destination=../../user/$vars[user]/$container/root/home/$vars[user] + mnt_dirs=( ns logs $=vars[mnt_dirs_extra] ) + 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]/home$'\t'$container_user_dir/root/home$'\tnone\tbind,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' /run/containers/$container.$vars[user]/inbox$'\t'$container_user_dir/root/.inbox$'\tnone\tbind,ro,nosuid,nodev\t0 0' + /run/container-logs$'\t'$container_user_dir/root/mnt/logs$'\tnone\tbind,ro,nosuid,nodev\t0 0' "${(f@)vars[fstab_extra]}" ) @@ -438,6 +442,8 @@ confz_container_service_xsession_check() { content=:$vars[display_number] require fs_contentnl filename=$svc_dir/env/vtN \ content=$vars[display_number] + require fs_contentnl filename=$svc_dir/env/CONTAINER_MNT_DIRS \ + content="$mnt_dirs" } # --- new image constructor