Exec form ng Dockerfile: ipasa ang curl --noproxy * nang walang shell quotes
Sa exec form, bawat JSON string ay isang argumento. Ang dagdag na shell quotes ay maaaring magbago ng value na natatanggap ng curl para sa --noproxy.
Sa exec form ng Dockerfile, ang JSON array ay listahan na ng mga argumento:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
Dito natatanggap ng curl ang --noproxy at * bilang magkahiwalay na argumento. Hindi pinalalawak ang asterisk sa mga pangalan ng file dahil walang command shell na nagbibigay-kahulugan sa form na ito.
Huwag ilagay ang opsyon at value sa isang JSON string. Huwag ding magdagdag ng literal na single quotes sa loob ng string dahil lang ginamit ito ng halimbawa sa terminal para sa proteksyon ng shell. Ang mga quote character na iyon ay maaaring maging bahagi ng value na ipinapasa sa programa.
Ang shell form ay may ibang hangganan: may kasamang shell, kaya mahalaga doon ang mga tuntunin ng quote at expansion. Ang hayagang shell na inilunsad mula sa command sa exec form ay nagdadagdag muli ng hangganang iyon.
Ang kahulugan ng --noproxy * sa curl ay laktawan ang proxy para sa lahat ng host. Iyon ay pagpili ng ruta, hindi pangkalahatang pagsubok ng format ng argumento. Gamitin lamang ito kapag ang direktang ruta ang nilalayong patakaran. Kung kailangan mo ng mas makitid na paglaktaw, ibigay ang tugmang value sa parehong istrukturang isang argumento bawat elemento.