Forme exec du Dockerfile : passer curl --noproxy * sans quotes shell
En forme exec, chaque chaîne JSON est un argument. Des quotes shell supplémentaires peuvent modifier la valeur que curl reçoit pour --noproxy.
Dans la forme exec du Dockerfile, le tableau JSON constitue déjà la liste des arguments :
CMD ["curl", "--noproxy", "*", "https://example.com/"]
Ici, curl reçoit --noproxy et * comme arguments distincts. L'astérisque n'est pas développé en noms de fichiers, car aucun shell de commande n'interprète cette forme.
Ne mettez pas l'option et la valeur dans une seule chaîne JSON. N'ajoutez pas non plus de guillemets simples littéraux dans la chaîne simplement parce qu'un exemple de terminal les a utilisés pour protéger le shell. Ces caractères de guillemet peuvent devenir une partie de la valeur transmise au programme.
La forme shell a une autre frontière : elle implique bien un shell, donc les règles de quoting et d'expansion y comptent. Un shell explicite lancé depuis une commande en forme exec réintroduit cette frontière.
La signification de --noproxy * chez curl est de contourner le proxy pour tous les hôtes. C'est un choix de routage, pas un test générique de format d'argument. Ne l'utilisez que lorsque la route directe est la politique voulue. Si vous avez besoin d'un contournement plus étroit, fournissez la valeur correspondante dans la même structure, un argument par élément.