CFG_NETWORK_MTU=1500 was baked blindly into the rootless daemon uplink (DOCKERD_ROOTLESS_ROOTLESSKIT_MTU) and every app's container network. On links whose real path MTU is below 1500 (Qubes/NAT/VPN with PMTU discovery blocked), image manifests + tiny images pull fine but large image LAYERS stall and reset mid-blob with "httpReadSeeker: ... EOF" — apps silently fail to install. Probed here: path MTU ~1328, Docker at 1500 → black hole. - New scripts/network/network_mtu.sh: networkDetectMtu (don't-fragment ICMP ladder → largest standard MTU that gets through, 1500 when ICMP gives no signal) + networkEffectiveMtu (CFG_NETWORK_MTU: a number is verbatim, "auto" probes once and caches $docker_dir/.network_mtu) + networkRedetectMtu. - CFG_NETWORK_MTU default 1500 -> auto. Rootless setup now writes the resolved MTU into the override (and re-detects per install); the per-app NETWORK_MTU_TAG uses the resolved value too. Explicit numbers still win. Verified on this box: auto -> 1300; alpine (multi-MB) + the full ~100MB navidrome image now pull to completion where they previously EOF'd. Applied live (override 1300, config=auto, cache=1300, rootless docker restarted). Signed-off-by: librelad <librelad@digitalangels.vip> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51 lines
2.1 KiB
Bash
Executable File
51 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This file is auto-generated by generate_arrays.sh
|
|
# Do not edit manually - run './scripts/source/files/generate_arrays.sh run' to regenerate
|
|
|
|
network_scripts=(
|
|
"network/display/show_all_network_services_detailed.sh"
|
|
"network/display/show_all_network_services.sh"
|
|
"network/display/show_ip_allocations.sh"
|
|
"network/display/show_network_conflicts.sh"
|
|
"network/display/show_network_health_detailed.sh"
|
|
"network/display/show_network_services_by_app.sh"
|
|
"network/display/show_network_services_by_category.sh"
|
|
"network/display/show_network_service.sh"
|
|
"network/display/show_network_statistics.sh"
|
|
"network/display/show_traefik_services.sh"
|
|
"network/dns/setup_dns_ip.sh"
|
|
"network/dns/setup_dns.sh"
|
|
"network/dns/setup_local_dns.sh"
|
|
"network/firewall/firewall_initial_setup.sh"
|
|
"network/firewall/rules/firewall_clear_rules.sh"
|
|
"network/firewall/rules/firewall_rebuild_from_db.sh"
|
|
"network/firewall/rules/firewall_refresh_all.sh"
|
|
"network/ip/ip_allocation.sh"
|
|
"network/ip/ip_find_available.sh"
|
|
"network/ip/ip_in_subnet.sh"
|
|
"network/ip/ip_is_available.sh"
|
|
"network/ip/ip_remove_from_db.sh"
|
|
"network/ip/ip_replace_tags.sh"
|
|
"network/monitoring/monitoring.sh"
|
|
"network/network_mtu.sh"
|
|
"network/ports/allocation/port_allocate.sh"
|
|
"network/ports/allocation/port_store_mapping.sh"
|
|
"network/ports/allocation/port_update_compose_tags.sh"
|
|
"network/ports/core/port_find_next_available.sh"
|
|
"network/ports/core/port_get_public_ports.sh"
|
|
"network/ports/core/port_get_service_ports_only.sh"
|
|
"network/ports/core/port_get_service_ports.sh"
|
|
"network/ports/core/port_remove_from_db.sh"
|
|
"network/ssh/ssh.sh"
|
|
"network/traefik/traefik_login_credentials.sh"
|
|
"network/traefik/traefik_middlewares.sh"
|
|
"network/traefik/traefik_port_middlewares.sh"
|
|
"network/traefik/traefik_port_subdomains.sh"
|
|
"network/traefik/traefik_whitelist.sh"
|
|
"network/variables/basic_scan.sh"
|
|
"network/variables/headscale_variables.sh"
|
|
"network/variables/variables_init_app.sh"
|
|
|
|
)
|