From 0748efcaa51233bf510ddd0b1e537093aac2c866 Mon Sep 17 00:00:00 2001 From: "Patrick J. Volkerding" Date: Fri, 12 Nov 2021 00:55:01 -0600 Subject: rc.inet1: Skip bridge and bond configuration in LXC container Add LXC detection at the beginning of the script to set container="lxc" if an LXC container is detected. Later, use this to skip bridge and bond creation in an LXC container. Patched script works in both LXC and on bare metal. Signed-off-by: Robby Workman --- rc.inet1 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/rc.inet1 b/rc.inet1 index d33ab77..dc853fb 100644 --- a/rc.inet1 +++ b/rc.inet1 @@ -2,7 +2,14 @@ # /etc/rc.d/rc.inet1 # This script is used to bring up the various network interfaces. # -# @(#)/etc/rc.d/rc.inet1 10.2 Sun Jul 24 12:45:56 PDT 2005 (pjv) +# @(#)/etc/rc.d/rc.inet1 15.0 Wed Nov 10 08:17:22 UTC 2021 (pjv) + +# If we are in an lxc container, set $container to skip parts of the script. +# Thanks to Matteo Bernardini and Chris Willing for +# the initial work making this script lxc compatible. +if grep -aq container=lxc /proc/1/environ 2> /dev/null ; then + container="lxc" +fi ############################ # READ NETWORK CONFIG FILE # @@ -254,9 +261,9 @@ if_up() { # bond or bridge, configure the interfaces with IPs of 0.0.0.0 and set the # MAC address with HWADDR. Then, finally, define the bond or bridge. # If the interface is a bond, create it. - [ -n "${BONDNICS[$i]}" ] && bond_create $i + [ -n "${BONDNICS[$i]}" -a -z "$container" ] && bond_create $i # If the interface is a bridge, create it. - [ -n "${BRNICS[$i]}" ] && br_open $i + [ -n "${BRNICS[$i]}" -a -z "$container" ] && br_open $i if [ -e /sys/class/net/${1%%[:.]*} ]; then # interface exists if ! /sbin/ip address show scope global dev ${1} 2>/dev/null | grep -Ewq '(inet|inet6)' || \ ! /sbin/ip link show dev ${1} | grep -wq "state UP"; then # interface not up or not configured -- cgit v1.2.3