Dockerfilein exec-muodossa JSON-taulukko on jo argumenttiluettelo:

CMD ["curl", "--noproxy", "*", "https://example.com/"]

Tässä curl saa --noproxy ja * erillisinä argumentteina. Tähteä ei laajenneta tiedostonimiksi, koska mikään komentotulkki ei tulkitse tätä muotoa.

Älä laita valitsinta ja arvoa yhteen JSON-merkkijonoon. Älä myöskään lisää merkkijonon sisään kirjaimellisia yksittäisiä lainausmerkkejä vain siksi, että pääte-esimerkki käytti niitä shellin suojaukseen. Noista lainausmerkeistä voi tulla osa ohjelmalle välitettävää arvoa.

Shell-muodolla on toinen raja: se sisältää shellin, joten lainaus- ja laajennussäännöt pätevät siellä. Exec-muotoisesta komennosta käynnistetty eksplisiittinen shell tuo tuon rajan takaisin.

curlissa --noproxy * tarkoittaa välityspalvelimen ohittamista kaikille isännille. Se on reititysvalinta, ei yleinen argumenttimuodon testi. Käytä sitä vain, kun suora reitti on aiottu käytäntö. Jos tarvitset kapeamman ohituksen, anna vastaava arvo samassa yksi-argumentti-per-alkio-rakenteessa.

Aiheeseen liittyvät artikkelit