În forma exec din Dockerfile, tabloul JSON este deja lista de argumente:

CMD ["curl", "--noproxy", "*", "https://example.com/"]

Aici curl primește --noproxy și * ca argumente separate. Asteriscul nu este extins în nume de fișiere deoarece niciun shell de comenzi nu interpretează această formă.

Nu puneți opțiunea și valoarea într-un singur șir JSON. Nu adăugați nici ghilimele simple literale în șir doar pentru că un exemplu din terminal le-a folosit pentru protecția shell-ului. Acele caractere de ghilimele pot deveni parte din valoarea transmisă programului.

Forma shell are o altă graniță: implică un shell, așa că regulile de citare și expandare contează acolo. Un shell explicit lansat dintr-o comandă în forma exec readaugă acea graniță.

Semnificația --noproxy * în curl este de a ocoli proxy-ul pentru toate gazdele. Aceasta este o alegere de rutare, nu un test generic al formatului argumentelor. Folosiți-o doar când ruta directă este politica dorită. Dacă aveți nevoie de o ocolire mai îngustă, furnizați valoarea corespunzătoare în aceeași structură cu un argument pe element.

Articole similare