Dockerfile exec 형식: 셸 따옴표 없이 curl --noproxy * 전달하기
exec 형식에서는 각 JSON 문자열이 하나의 인자입니다. 추가 셸 따옴표는 curl이 --noproxy에 대해 받는 값을 바꿀 수 있습니다.
Dockerfile exec 형식에서는 JSON 배열이 이미 인자 목록입니다:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
여기서 curl은 --noproxy과 *를 별도 인자로 받습니다. 별표가 파일 이름으로 확장되지 않는 것은 이 형식을 해석하는 명령 셸이 없기 때문입니다.
옵션과 값을 하나의 JSON 문자열에 넣지 마세요. 터미널 예제가 셸 보호를 위해 사용했다는 이유만으로 문자열 안에 문자 그대로의 작은따옴표를 추가하지도 마세요. 그 따옴표 문자는 프로그램에 전달되는 값의 일부가 될 수 있습니다.
셸 형식에는 다른 경계가 있습니다. 실제로 셸을 거치므로 따옴표와 확장 규칙이 거기서 중요합니다. exec 형식 명령에서 명시적 셸을 실행하면 그 경계가 다시 추가됩니다.
curl에서 --noproxy *의 의미는 모든 호스트에 대해 프록시를 우회하는 것입니다. 이는 라우팅 선택이지 일반적인 인자 형식 테스트가 아닙니다. 직접 경로가 의도한 정책일 때만 사용하세요. 더 좁은 우회가 필요하면 동일한 요소당 하나의 인자 구조로 해당 값을 제공하세요.