Dockerfile exec-form: send curl --noproxy * utan shell-anførselsteikn
I exec-form er kvar JSON-streng eitt argument. Ekstra shell-anførselsteikn kan endre verdien som curl får for --noproxy.
I Dockerfile exec-form er JSON-matrisa allereie argumentlista:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
Her får curl --noproxy og * som separate argument. Stjerna blir ikkje utvida til filnamn fordi ingen kommandoshell tolkar denne forma.
Ikkje set valet og verdien i éin JSON-streng. Ikkje legg til bokstavelege enkle anførselsteikn inne i strengen berre fordi eit terminaldøme brukte dei til shell-vern. Desse anførselsteikna kan bli ein del av verdien som blir sendt til programmet.
Shell-forma har ei anna grense: ho involverer eit shell, så reglar for anførselsteikn og utviding gjeld der. Eit eksplisitt shell starta frå ein kommando i exec-form legg den grensa tilbake.
Tydinga av --noproxy * i curl er å omgå proxien for alle vertar. Det er eit rutingsval, ikkje ein generell test av argumentformat. Bruk det berre når den direkte ruta er den tiltenkte policyen. Viss du treng ei smalare omgåing, oppgje den tilsvarande verdien i den same strukturen med eitt argument per element.