Dockerfile exec-form: send curl --noproxy * uden shell-citater
I exec-form er hver JSON-streng ét argument. Ekstra shell-citater kan ændre den værdi, som curl modtager for --noproxy.
I Dockerfile exec-form er JSON-arrayet allerede argumentlisten:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
Her modtager curl --noproxy og * som separate argumenter. Stjernen udvides ikke til filnavne, fordi ingen kommandoshell fortolker denne form.
Sæt ikke indstillingen og værdien i én JSON-streng. Tilføj heller ikke bogstavelige enkelte citater inde i strengen, blot fordi et terminaleksempel brugte dem til shell-beskyttelse. De citationstegn kan blive en del af den værdi, der sendes til programmet.
Shell-formen har en anden grænse: den involverer en shell, så reglerne for citater og udvidelse gælder der. En eksplicit shell startet fra en kommando i exec-form tilføjer den grænse igen.
Betydningen af --noproxy * i curl er at omgå proxyen for alle værter. Det er et routingvalg, ikke en generisk test af argumentformatet. Brug det kun, når den direkte rute er den tilsigtede politik. Hvis du har brug for en snævrere omgåelse, angiv den tilsvarende værdi i den samme struktur med ét argument pr. element.