A Dockerfile exec formájában a JSON-tömb már maga az argumentumlista:

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

Itt a curl a --noproxy és a * külön argumentumként kapja. A csillag nem bővül fájlnevekké, mert ezt a formát egyetlen parancs-shell sem értelmezi.

Ne tegye az opciót és az értéket egyetlen JSON-karakterláncba. Akkor se adjon hozzá szó szerinti egyszeres idézőjeleket a karakterláncon belül, csak mert egy terminálpélda ezeket a shell védelmére használta. Ezek az idézőjel-karakterek a programnak átadott érték részévé válhatnak.

A shell-formának más a határa: tartalmaz shellt, ezért ott az idézőjelezési és bővítési szabályok számítanak. Az exec formájú parancsból indított kifejezett shell ezt a határt visszahozza.

A --noproxy * jelentése a curlben az, hogy minden hoszt esetében megkerülje a proxyt. Ez útvonalválasztási döntés, nem általános argumentumformátum-teszt. Csak akkor használja, ha a közvetlen útvonal a kívánt szabály. Ha szűkebb megkerülésre van szüksége, adja meg a megfelelő értéket ugyanabban az egy argumentum elemként szerkezetben.

Kapcsolódó cikkek