В exec форма на Dockerfile JSON масивът вече е списъкът с аргументи:

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

Тук curl получава --noproxy и * като отделни аргументи. Звездичката не се разгръща в имена на файлове, защото никоя командна обвивка не интерпретира тази форма.

Не поставяйте опцията и стойността в един JSON низ. Не добавяйте и буквални единични кавички вътре в низа само защото пример в терминал ги е използвал за защита на шела. Тези кавички могат да станат част от стойността, подадена на програмата.

Формата с шел има друга граница: тя включва шел, затова там важат правилата за кавички и разгръщане. Явен шел, стартиран от команда в exec форма, връща тази граница.

Значението на --noproxy * в curl е да заобиколи проксито за всички хостове. Това е избор на маршрут, а не общ тест за формат на аргументите. Използвайте го само когато директният маршрут е желаната политика. Ако ви трябва по-тясно заобикаляне, подайте съответната стойност в същата структура с един аргумент на елемент.

Подобни статии