Dockerfile Directives
What are Dockerfile Directives
အရှေ့မှာ Dockerfile ကိုသုံးပြီး image ဆောက်ခဲ့တယ် ပြီးတေ့ာ အဲဒီ image ကိုသုံးပြီး container တွေ ဆောက်တာကို မြင်ခဲ့ရပြီးပါပြီ။
အခုပြောမှာကတော့ အဲ့ဒီ Dockerfile ကို ဘယ်လိုရေးမလဲဆိုတာပါ။
Dockerfile ကို Docker directive တွေနဲ့ရေးရတာပါ။
FROM
ဒီ FROM ဆိုတဲ့ directive ကို base image ယူသုံးဖို့အတွက် သုံးတာပါ။ ဥပမာ ခင်ဗျားက ubuntu command တွေ သုံးလို့ရမဲ့ container တစ်လုံးလိုချင်တာဆိုရင် FROM ubuntu
ဆိုပြီးသုံးရမှာပါ။
Default အနေနဲ့ဆို docker store မှာရှိတဲ့ ubuntu version တွေထဲကမှ latest version ကို ယူသုံးသွားမှာပါ အဲ့လိုမှမဟုတ်ဘူး latest လိုချင်တာမဟုတ်ဘူး ကိုယ်လိုချင်တာ သက်သက်ဆို အခုလိုရေးလို့ရပါတယ်။ FROM tecadmin/ubuntu-ssh:16.04
LABEL
ဒါကတော့ နာမည်အတိုင်းပဲ label တပ်တာပါ။ Maintainer address,vendor name,image version,release date
အစရှိသဖြင့်ပေါ့။ ဥပမာ
လို့ ရိုက်လိုက်ရုံပါပဲ။ အကြံပြု လိုတာကတော့ တစ် line ထဲကို space ခံ single line ခံပြီး ရေးတာကိုပါ။ Image build တဲ့အချိန်မှာ စာကြောင်းတစ်ကြောင်းကို layer တစ်ခု ဆောက်တာပါ Layer နည်းလေ မြန်လေပါပဲ။
RUN
RUN ကိုတော့ လိုအပ်တဲ့ commandတွေ run ဖို့သုံးပါတယ်။ ဥပမာ လိုအပ်တဲ့packageတွေ သွင်းဖို့လိုတဲ့အခါမျိုးပေါ့။
ဒီနေရာမှာလဲ အပေါ်ကလို တစ်ကြောင်းထဲဖြစ်အောင် ရေးသင့်ပါတယ်။ Layer နည်းလေကောင်းလေပါ။
COPY
ဒါကိုတော့ ကိုယ့်စက်ထဲမှာရှိတဲ့ files တွေ directories တွေကို ဆောက်မယ့် image ပေါ်copy ကူးချင်ရင် သုံးပါတယ်။
ပထမ command ရိုက်လိုက်ရင် host ရဲ့ html directory အောက်က file အကုန်ကို image ရဲ့ /var/www/html/ အောက်ကို copy ကူးသွားမှာပါ။
ဒုတိယ command ကတော့ host ရဲ့ .conf extension file အားလုံးကို image ရဲ့ /etc/apache2/sites-available/ အောက်ကိုပေါ့။
WORKDIR
ဒီ directive ကိုတော့ dockerfile ရဲ့အခြားသော directives တွေဖြစ်တဲ့ RUN,CMD,ENTRYPOINT,COPY,ADD
တွေရဲ့ working directory သတ်မှတ်ပေးဖို့သုံးပါတယ်။
CMD
CMD directive ကိုတော့ image မှာပါတဲ့ service,software တွေကို container launch လုပ်တာနဲ့ run ဖို့သုံးပါတယ်။ သူ့ရဲ့ syntax ကတော့
အကယ်၍ခင်ဗျားက apache service ကို runချင်တယ်ဆိုပါတော့
EXPOSE
ဒါက container ရဲ့ port ကိုညွှန်းဆိုမဲ့ directive ပါ။ အပေါ်မှာတွေ့ခဲ့တဲ့ docker run -it -p နဲ့ port ချိတ်တာမှာ ဒီက ညွှန်းဆိုထားတဲ့ port တွေနဲ့ ချိတ်ပေးရပါမယ်။
ENV
ENV directive ကိုတော့ environment variable သတ်မှတ်ပေးချင်ရင် သုံးတာပါ။
VOLUME
နောက်ဆုံး အနေနဲ့တော့ VOLUME directive ပါ။ သူ့ကိုတော့ mount point create ဖို့ သုံးပါတယ်။ သိထားဖို့က သူဟာ externally mounted volumes ပဲဖြစ်ပါတယ်။
Last updated