W formie exec Dockerfile tablica JSON jest już listą argumentów:

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

Tutaj curl otrzymuje --noproxy i * jako osobne argumenty. Gwiazdka nie jest rozwijana na nazwy plików, ponieważ żadna powłoka poleceń nie interpretuje tej formy.

Nie umieszczaj opcji i wartości w jednym ciągu JSON. Nie dodawaj też dosłownych pojedynczych cudzysłowów wewnątrz ciągu tylko dlatego, że przykład w terminalu użył ich do ochrony powłoki. Te znaki cudzysłowów mogą stać się częścią wartości przekazywanej programowi.

Forma powłoki ma inną granicę: obejmuje powłokę, więc zasady cudzysłowów i rozwijania mają tam znaczenie. Jawna powłoka uruchomiona z polecenia w formie exec przywraca tę granicę.

Znaczenie --noproxy * w curl to ominięcie serwera proxy dla wszystkich hostów. To wybór trasy, a nie ogólny test formatu argumentów. Używaj go tylko wtedy, gdy trasa bezpośrednia jest zamierzoną polityką. Jeśli potrzebujesz węższego ominięcia, podaj pasującą wartość w tej samej strukturze jeden argument na element.

Powiązane artykuły