Improve LXC network wait and gateway check logic
Some checks failed
Bump build.func Revision / bump-revision (push) Has been cancelled

Refactors the LXC container network initialization to simplify IP wait logic, reduce gateway ping attempts from 20 to 10, and provide clearer status messages. Now warns instead of failing if the gateway is unreachable but the container has an IP, improving robustness in network checks.
This commit is contained in:
CanbiZ 2025-09-22 12:41:26 +02:00
parent 00750681ed
commit 5b6bbd1ed0

View File

@ -2377,12 +2377,10 @@ EOF
if [ "$var_os" != "alpine" ]; then if [ "$var_os" != "alpine" ]; then
msg_info "Waiting for network in LXC container" msg_info "Waiting for network in LXC container"
# --- Step 1: Wait until the CT has an IP --- # --- Step 1: Wait for IP ---
for i in {1..20}; do for i in {1..20}; do
ip_in_lxc=$(pct exec "$CTID" -- ip -4 addr show dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1) ip_in_lxc=$(pct exec "$CTID" -- ip -4 addr show dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
if [ -n "$ip_in_lxc" ]; then [ -n "$ip_in_lxc" ] && break
break
fi
sleep 1 sleep 1
done done
@ -2391,20 +2389,23 @@ EOF
exit 1 exit 1
fi fi
# --- Step 2: Wait until gateway responds --- # --- Step 2: Try to reach gateway ---
for i in {1..20}; do gw_ok=0
for i in {1..10}; do
if pct exec "$CTID" -- ping -c1 -W1 "$GATEWAY" >/dev/null 2>&1; then if pct exec "$CTID" -- ping -c1 -W1 "$GATEWAY" >/dev/null 2>&1; then
gw_ok=1
break break
fi fi
sleep 1 sleep 1
done done
if [ "$i" -eq 20 ]; then if [ "$gw_ok" -eq 1 ]; then
msg_error "Gateway $GATEWAY unreachable from CT $CTID (IP $ip_in_lxc)" msg_ok "CT $CTID gateway $GATEWAY reachable (IP $ip_in_lxc)"
exit 1 else
msg_warn "CT $CTID has IP $ip_in_lxc but gateway $GATEWAY did not reply"
fi fi
# --- Step 3: DNS check --- # --- Step 3: DNS / Internet check ---
if pct exec "$CTID" -- getent hosts deb.debian.org >/dev/null 2>&1; then if pct exec "$CTID" -- getent hosts deb.debian.org >/dev/null 2>&1; then
msg_ok "Network in LXC is reachable (DNS OK, IP $ip_in_lxc)" msg_ok "Network in LXC is reachable (DNS OK, IP $ip_in_lxc)"
else else