ဒီ weekend မှာ dev server အတွက် https://dokploy.com/ ကို ပြောင်းသုံးဖြစ်တာ အတော်အဆင်ပြေတယ်။ ဒါပေမယ့် လက်ရှိ app တွေကို အကုန် Dockerfil ပြန်ရေးရတာပဲ။ လွန်ခဲ့သည့် ၂ နှစ်လောက် က ဆိုရင်တော့ ပြောင်းဖို့ တွန့်ဆုတ် နေမှာ။ အခုတော့ Codex အစွမ်း နဲ့ Dockerfile ရေးရတာ အတော် ကို အဆင်ပြေတာ။
ဘာမှ လုပ်စရာမလိုပဲ project ကို Dockerfile ပြောင်းပြီး dokploy ကို github သုံးပြီး ပြောင်းတာ server က အတော် သေသပ်သွားတယ် ဆိုရမယ်။
အရင်က server တစ်ခု တည်းမှာ PHP 7 , PHP 8.1, PHP 8.2, PHP 8.3 , PHP 8.4 စသည့် PHP version အစုံအပြင် nodejs version အစုံ ပါ တင်ပြီး run ထားတာ။ အချို့ project အဟောင်းတွေက version အဟောင်း ဖြစ်နေတာ ကြောင့်လည်း ပါတယ်။ နောက်ပြီး node js app တွေက background မှာ run နေပြီး project တစ်ခု ကြောင့် memory သို့မဟုတ် disk space full ဖြစ်သွားရင် အကုန် down သွားတာ။ အဲဒီ အခါမှာ manual ပြန် run ရတာ ပြန်စစ်ရတာ အတော် လက်ပေါက်ကပ်ပါတယ်။ ဒါကြောင့် project တွေကို indepenedt ဖြစ်အောင် docker ပြောင်းဖို့ စဥ်းစားနေတာ ကြာပြီ။
dokploy မှာတော့ အကုန်လုံး docker နဲ့ ဖြစ်သွားတော့ အတော်လေးကို စိတ်ချမ်းသာရတယ်။ မဟုတ်ရင် php verison, nodejs version တွေ က conflict ဖြစ်ပြီး deployment မှာ ခဏ ခဏ ပြင်နေရတယ်။ နောက်တချက်က manual auto deployment setup တွေ မလိုတော့တာပဲ။ github မှာ dev branch ကို push တာနဲ့ တန်းပြီး deploy ပဲ။
အရင်က project တစ်ခုကို auto deployment setup တစ်ခု လုပ်နေရတာကနေ ဘာမှ လုပ်စရာ မလိုတော့အောင် ဖြစ်သွားတာ။
အဓိက ပြဿနာကတော့ storage ပဲ။ local storage အစား s3 ကို သုံးမှ အဆင်ပြေတယ်။ s3 အတွက် အခုတော့ RustFS ကို သုံးထားတယ်။ ဘာလို့ local storage သုံးမရတာလဲ ဆိုရင်တော့ docker ဖြစ်နေတာရယ် တစ်ခါ deploy လုပ်တိုင်း git clone လုပ်တာ ကြောင့် data တွေ က ပျောက်သွားနိုင်တာ ကြောင့်ပါ။ ဒါကြောင့် အကုန်လုံးကို s3 storage ပြောင်းရတာပဲ။
docker နဲ့ project တွေ ဖြစ်လာတော့ project တစ်ခုမှာ app image , mysql image, redis image, rustfs image စသည်ဖြင့် ၄ ခု လောက် ပုံမှန် setup လုပ်ရတယ်။ အစ ပိုင်း တော့ အချိန်ကုန် ပြီး လက်ဝင်ပေမယ့် နောက်ပိုင်းမှာ အတော် သက်သက်သာသာ ရှိသည့် စနစ် တစ်ခုပါ။
တကယ်လို့ single server သုံးပြီး project တွေ အများကြီးရှိရင် dokploy ကို စမ်းကြည့်သင့်တယ်။ အစ ပိုင်း လက်ဝင်ပေမယ့် သေသေသပ်သပ် ဖြစ်သွားတာ ကတော့ သဘောကျတယ်။
