V exec forme Dockerfile je pole JSON už zoznamom argumentov:

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

Tu curl dostáva --noproxy a * ako samostatné argumenty. Hviezdička sa nerozširuje na názvy súborov, pretože túto formu neinterpretuje žiadny príkazový shell.

Nedávajte voľbu a hodnotu do jedného reťazca JSON. Nepridávajte ani doslovné jednoduché úvodzovky dovnútra reťazca len preto, že ich terminálový príklad použil na ochranu shellu. Tie znaky úvodzoviek sa môžu stať súčasťou hodnoty odovzdávanej programu.

Shellová forma má inú hranicu: skutočne zahŕňa shell, takže tam platia pravidlá úvodzoviek a rozširovania. Explicitný shell spustený z príkazu v exec forme túto hranicu vracia späť.

Význam --noproxy * v curle je obísť proxy pre všetkých hostiteľov. To je voľba smerovania, nie všeobecný test formátu argumentov. Použite ho len vtedy, keď je priama trasa zamýšľanou politikou. Ak potrebujete užšie obídenie, zadajte zodpovedajúcu hodnotu v tej istej štruktúre jeden argument na prvok.

Súvisiace články