Dockerfile exec ပုံစံ- shell quotes မပါဘဲ curl --noproxy * ကို ပို့ခြင်း
exec ပုံစံတွင် JSON string တစ်ခုစီသည် argument တစ်ခုဖြစ်သည်။ ပိုလျှံသော shell quotes များသည် curl က --noproxy အတွက် ရရှိသည့် တန်ဖိုးကို ပြောင်းနိုင်သည်။
Dockerfile exec ပုံစံတွင် JSON array သည် argument စာရင်းဖြစ်ပြီးသားဖြစ်သည်-
CMD ["curl", "--noproxy", "*", "https://example.com/"]
ဤနေရာတွင် curl သည် --noproxy နှင့် * ကို သီးခြား argument အဖြစ် လက်ခံသည်။ ဤပုံစံကို မည်သည့် command shell မှ အနက်ဖွင့်မည်မဟုတ်သောကြောင့် ကြယ်အမှတ်အသားသည် ဖိုင်အမည်များအဖြစ် မချဲ့ထွင်ပါ။
ရွေးချယ်မှုနှင့် တန်ဖိုးကို JSON string တစ်ခုတည်းတွင် မထည့်ပါနှင့်။ terminal ဥပမာက shell ကာကွယ်မှုအတွက် ၎င်းတို့ကို အသုံးပြုခဲ့သောကြောင့်သာ string အတွင်းတွင် စာလုံးအတိုင်း single quote များ မထည့်ပါနှင့်။ ထို quote စာလုံးများသည် ပရိုဂရမ်သို့ ပေးပို့သော တန်ဖိုး၏ အစိတ်အပိုင်း ဖြစ်လာနိုင်သည်။
shell ပုံစံတွင် အခြားနယ်နိမိတ်တစ်ခု ရှိသည်- ၎င်းသည် shell ပါဝင်သောကြောင့် quote နှင့် ချဲ့ထွင်မှု စည်းမျဉ်းများသည် ထိုနေရာတွင် အရေးပါသည်။ exec ပုံစံ command မှ စတင်သော တိကျသည့် shell သည် ထိုနယ်နိမိတ်ကို ပြန်ထည့်သည်။
curl တွင် --noproxy * ၏ အဓိပ္ပာယ်မှာ host အားလုံးအတွက် proxy ကို ကျော်လွှားခြင်းဖြစ်သည်။ ၎င်းသည် routing ရွေးချယ်မှုဖြစ်ပြီး ယေဘုယျ argument ပုံစံ စမ်းသပ်မှု မဟုတ်ပါ။ တိုက်ရိုက်လမ်းကြောင်းကို ရည်ရွယ်သည့် မူဝါဒအဖြစ် သတ်မှတ်သည့်အခါမှသာ အသုံးပြုပါ။ ပိုကျဉ်းသော ကျော်လွှားမှု လိုအပ်ပါက တူညီသော တစ်-argument-တစ်-ဒြပ်စင် ဖွဲ့စည်းပုံတွင် ကိုက်ညီသည့် တန်ဖိုးကို ပေးပါ။