Forma exec de Dockerfile: pasar curl --noproxy * sin comillas de shell
En la forma exec, cada cadena JSON es un argumento. Las comillas de shell adicionales pueden cambiar el valor que curl recibe para --noproxy.
En la forma exec de Dockerfile, la matriz JSON ya es la lista de argumentos:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
Aquí curl recibe --noproxy y * como argumentos separados. El asterisco no se expande a nombres de archivo porque ningún shell de comandos interpreta esta forma.
No pongas la opción y el valor en una sola cadena JSON. Tampoco añadas comillas simples literales dentro de la cadena solo porque un ejemplo de terminal las usó para proteger el shell. Esos caracteres de comilla pueden pasar a formar parte del valor que se entrega al programa.
La forma de shell tiene otra frontera: sí implica un shell, así que las reglas de comillas y expansión importan allí. Un shell explícito lanzado desde un comando en forma exec vuelve a añadir esa frontera.
El significado de --noproxy * en curl es eludir el proxy para todos los hosts. Es una decisión de enrutamiento, no una prueba genérica de formato de argumentos. Úsalo solo cuando la ruta directa sea la política deseada. Si necesitas una elusión más estrecha, proporciona el valor correspondiente en la misma estructura de un argumento por elemento.