Dockerfile exec ਰੂਪ: shell quotes ਤੋਂ ਬਿਨਾਂ curl --noproxy * ਭੇਜਣਾ
exec ਰੂਪ ਵਿੱਚ, ਹਰ JSON ਸਟ੍ਰਿੰਗ ਇੱਕ ਆਰਗਿਊਮੈਂਟ ਹੈ। ਵਾਧੂ shell quotes ਉਹ ਮੁੱਲ ਬਦਲ ਸਕਦੇ ਹਨ ਜੋ curl --noproxy ਲਈ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।
Dockerfile exec ਰੂਪ ਵਿੱਚ, JSON ਐਰੇ ਪਹਿਲਾਂ ਹੀ ਆਰਗਿਊਮੈਂਟ ਸੂਚੀ ਹੈ:
CMD ["curl", "--noproxy", "*", "https://example.com/"]
ਇੱਥੇ curl --noproxy ਅਤੇ * ਨੂੰ ਵੱਖਰੇ ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਤਾਰਾ ਚਿੰਨ੍ਹ ਫਾਈਲ ਨਾਵਾਂ ਵਿੱਚ ਨਹੀਂ ਫੈਲਦਾ ਕਿਉਂਕਿ ਕੋਈ ਕਮਾਂਡ shell ਇਸ ਰੂਪ ਦੀ ਵਿਆਖਿਆ ਨਹੀਂ ਕਰਦਾ।
ਵਿਕਲਪ ਅਤੇ ਮੁੱਲ ਨੂੰ ਇੱਕ JSON ਸਟ੍ਰਿੰਗ ਵਿੱਚ ਨਾ ਰੱਖੋ। ਸਿਰਫ਼ ਇਸ ਲਈ ਸਟ੍ਰਿੰਗ ਦੇ ਅੰਦਰ ਸ਼ਬਦੀ ਇੱਕਹਰੇ quotes ਨਾ ਜੋੜੋ ਕਿ ਟਰਮੀਨਲ ਉਦਾਹਰਨ ਨੇ ਉਨ੍ਹਾਂ ਨੂੰ shell ਸੁਰੱਖਿਆ ਲਈ ਵਰਤਿਆ ਸੀ। ਉਹ quote ਅੱਖਰ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਦਿੱਤੇ ਜਾਣ ਵਾਲੇ ਮੁੱਲ ਦਾ ਹਿੱਸਾ ਬਣ ਸਕਦੇ ਹਨ।
shell ਰੂਪ ਦੀ ਇੱਕ ਹੋਰ ਸੀਮਾ ਹੈ: ਇਹ shell ਨੂੰ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ quote ਅਤੇ ਵਿਸਤਾਰ ਦੇ ਨਿਯਮ ਉੱਥੇ ਮਹੱਤਵਪੂਰਨ ਹਨ। exec ਰੂਪ ਕਮਾਂਡ ਤੋਂ ਸ਼ੁਰੂ ਕੀਤਾ ਸਪਸ਼ਟ shell ਉਹ ਸੀਮਾ ਮੁੜ ਜੋੜਦਾ ਹੈ।
curl ਵਿੱਚ --noproxy * ਦਾ ਅਰਥ ਸਾਰੇ ਹੋਸਟਾਂ ਲਈ ਪ੍ਰੌਕਸੀ ਬਾਈਪਾਸ ਕਰਨਾ ਹੈ। ਇਹ ਰਾਊਟਿੰਗ ਚੋਣ ਹੈ, ਆਮ ਆਰਗਿਊਮੈਂਟ-ਫਾਰਮੈਟ ਟੈਸਟ ਨਹੀਂ। ਇਸਨੂੰ ਸਿਰਫ਼ ਤਦ ਵਰਤੋ ਜਦੋਂ ਸਿੱਧਾ ਰਾਹ ਹੀ ਇੱਛਤ ਨੀਤੀ ਹੋਵੇ। ਜੇ ਤੁਹਾਨੂੰ ਹੋਰ ਸੰਕੀਰਣ ਬਾਈਪਾਸ ਚਾਹੀਦਾ ਹੈ, ਤਾਂ ਉਸੇ ਇੱਕ-ਆਰਗਿਊਮੈਂਟ-ਪ੍ਰਤੀ-ਤੱਤ ਢਾਂਚੇ ਵਿੱਚ ਮੇਲ ਖਾਂਦਾ ਮੁੱਲ ਦਿਓ।