use host resolv.conf.containers if present as a basis for guest /etc/resolv.conf
[build.git] / lbuild-initvm.sh
index b8615d7..6897c5d 100755 (executable)
@@ -82,7 +82,7 @@ function package_method () {
     case $fcdistro in
         f[0-9]*|centos[0-9]*|sl[0-9]*)
             echo dnf ;;
-        wheezy|jessie|trusty|xenial|bionic|focal)
+        wheezy|jessie|trusty|xenial|bionic|focal|jammy)
             echo debootstrap ;;
         *)
             echo "Unknown package_method for distro $fcdistro" ;;
@@ -100,7 +100,7 @@ function network_method () {
             echo ifcfg ;;
         wheezy|jessie|trusty|xenial|bionic)
             echo interfaces ;;
-        focal)
+        focal|jammy)
             echo systemd ;;
         *)
             echo "Unknown network_method for distro $fcdistro" ;;
@@ -396,7 +396,7 @@ function debian_mirror () {
     case $fcdistro in
         wheezy|jessie)
             echo http://ftp2.fr.debian.org/debian/ ;;
-        trusty|xenial|bionic|focal)
+        trusty|xenial|bionic|focal|jammy)
             echo http://www-ftp.lip6.fr/pub/linux/distributions/Ubuntu/archive/ ;;
         *) echo unknown distro $fcdistro; exit 1;;
     esac
@@ -532,7 +532,14 @@ function setup_lxc() {
     ### set up resolv.conf from host
     # ubuntu precise and on, /etc/resolv.conf is a symlink to ../run/resolvconf/resolv.conf
     [ -h $lxc_root/etc/resolv.conf ] && rm -f $lxc_root/etc/resolv.conf
-    cp /etc/resolv.conf $lxc_root/etc/resolv.conf
+    ### since fedora36, our hosts use systemd-resolved, but the guests can't use that
+    # so the administrator has the option to create /etc/resolv.conf.containers
+    # and if that file exists it will be copied in the containers instead of /etc/resolv.conf
+    if [ -f /etc/resolv.conf.containers ]; then
+        cp /etc/resolv.conf.containers $lxc_root/etc/resolv.conf
+    else
+        cp /etc/resolv.conf $lxc_root/etc/resolv.conf
+    fi
     ### and /etc/hosts for at least localhost
     [ -f $lxc_root/etc/hosts ] || echo "127.0.0.1 localhost localhost.localdomain" > $lxc_root/etc/hosts