[docker-in-docker] `docker-init.sh` prints `grep: /proc/modules: No such file or directory` on kernels without loadable-module support

Aperta Adatta ai principianti
#1,770 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 3 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
88/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
docker, shell
Ambito
devops

Direzione di ricerca

Il controllo si trova in src/docker-in-docker/install.sh; leggi la selezione del backend iptablesSwitchAtRuntime descritta nell’issue. Riproduci il problema su un kernel senza supporto per i moduli caricabili e conferma che all’avvio viene visualizzato l’errore relativo all’assenza di /proc/modules. Il lavoro è completato quando l’errore viene silenziato e il fallback a iptables-nft continua a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

With iptablesSwitchAtRuntime at its default of true, docker-init.sh prints an error on every start when the kernel is built without loadable-module support, because /proc/modules doesn't exist there.

The check is in src/docker-in-docker/install.sh:

if type iptables-legacy > /dev/null 2>&1 \
   && { grep -qE '^(ip_tables)\b' /proc/modules \
        || [ -d /sys/module/ip_tables ]; } \

grep -q doesn't suppress the error for a missing file, so the message goes to stderr:

grep: /proc/modules: No such file or directory

The backend selection still works: the grep fails, the /sys/module check runs next, and the script falls through to iptables-nft.
So this is only noise, but it looks like a failure to anyone reading container startup output.

Reproduction: feature version 4.1.3, in a microsandbox (msb 0.7.13) guest on kernel 6.12.113, built without loadable modules.
Any container or VM on such a kernel should behave the same.

Suggested fix: silence that one grep, leaving the rest of the logic as it is:

   && { grep -qE '^(ip_tables)\b' /proc/modules 2>/dev/null \

Related: #1709 concerns the same iptablesSwitchAtRuntime check.

Lingua principale
Shell
Stelle
1.6k
Fork
626
Merge medio
4g 10h
PR unite (30g)
7

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di devcontainers/features

Tutte le issue di devcontainers/features

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.