Dockerfileのexec形式: シェルの引用符なしで curl --noproxy * を渡す
exec形式では、各JSON文字列が1つの引数です。余分なシェルの引用符は、curlが--noproxyに対して受け取る値を変える可能性があります。
Dockerfileのexec形式では、JSON配列がすでに引数リストです:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
ここでcurlは--noproxyと*を別々の引数として受け取ります。アスタリスクがファイル名に展開されないのは、この形式を解釈するコマンドシェルが存在しないからです。
オプションと値を1つのJSON文字列に入れないでください。また、ターミナルの例がシェル保護のために使ったという理由だけで、文字列の中にリテラルの一重引用符を追加しないでください。その引用符文字は、プログラムに渡される値の一部になり得ます。
シェル形式には別の境界があります。実際にシェルを介するため、引用と展開の規則がそこで重要になります。exec形式のコマンドから明示的なシェルを起動すると、その境界が再び加わります。
curlの--noproxy *の意味は、すべてのホストでプロキシをバイパスすることです。これはルーティングの選択であり、一般的な引数形式のテストではありません。直接経路が意図したポリシーである場合にのみ使用してください。より狭いバイパスが必要な場合は、同じ要素ごとに1引数の構造で対応する値を指定してください。