mrrl-containers

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

commit 9d5029c9d05f3975e97772a6f46908e5048328b0
parent 5c992c100fc9502968a9678570084dbe92f9a56d
Author: Jan Pobříslo <ccx@te2000.cz>
Date:   Fri, 24 Jun 2022 17:27:13 +0200

Somewhat more complete filesystem layout for Nix
Diffstat:
Mzsh-functions/confz_containers_init | 56+++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 55 insertions(+), 1 deletion(-)

diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -893,6 +893,59 @@ confz_container_void_packages_installed_check() { # --- Nix / NixOS --- +confz_container_nix_base_files_check() { + checkvars root hostname locale + defvar uid 0 + defvar gid 0 + + require fs_contentnl filename="$vars[root]/etc/hostname" \ + content="$vars[hostname]" + require fs_m filename="$vars[root]/etc/hostname" mode=0644 + require fs_o filename="$vars[root]/etc/hostname" owner=$vars[uid]:$vars[gid] + + require container_template_file :root :uid :gid \ + template=alpine name=etc/hosts + + require fs_contentnl filename="$vars[root]/etc/motd" \ + content="Welcome to container image at ${(qqq)vars[root]}" + require fs_m filename="$vars[root]/etc/motd" mode=0644 + require fs_o filename="$vars[root]/etc/motd" owner=$vars[uid]:$vars[gid] + + require container_template_file :root :uid :gid \ + template=alpine name=etc/profile + + local -a locale_lines=( + "export CHARSET=${(q)vars[locale]}" + "export LANG=${(q)vars[locale]}" + "export LC_COLLATE=C" + ) + require fs_contentnl filename="$vars[root]/etc/profile.d/locale.sh" \ + content="${(F)locale_lines}" + require fs_m filename="$vars[root]/etc/profile.d/locale.sh" mode=0644 + require fs_o filename="$vars[root]/etc/profile.d/locale.sh" owner=$vars[uid]:$vars[gid] + + require container_template_file :root :uid :gid \ + template=alpine name=etc/protocols + + require container_template_file :root :uid :gid \ + template=alpine name=etc/services + + require container_template_file :root :uid :gid \ + template=alpine name=etc/shells + + require fs_f filename="$vars[root]/etc/group" + # require fs_c filename="$vars[root]/etc/group" \ + # content="" + require fs_m filename="$vars[root]/etc/group" mode=0644 + require fs_o filename="$vars[root]/etc/group" owner=$vars[uid]:$vars[gid] + + require fs_f filename="$vars[root]/etc/passwd" + # require fs_c filename="$vars[root]/etc/passwd" \ + # content="" + require fs_m filename="$vars[root]/etc/passwd" mode=0644 + require fs_o filename="$vars[root]/etc/passwd" owner=$vars[uid]:$vars[gid] +} + confz_container_nix_image_from_release_check() { checkvars containers_dir image_name system defvar release 2.9.1 @@ -1014,7 +1067,7 @@ confz_container_nix_image_check() { defvar hostname $vars[image_name] defvar locale C.UTF-8 - # TODO: actually apply hostname and locale? + # TODO: test if these actually do something unify root $vars[containers_dir]/systems/$vars[image_name] unify user container-$vars[image_name] @@ -1024,6 +1077,7 @@ confz_container_nix_image_check() { require container_sysroot_user %uid %gid :containers_dir :image_name require container_generic_layout :uid :gid :root + require container_base_files :uid :gid :root :hostname :locale require container_service_sysroot :containers_dir :svscan_dir \ :image_name