Docker হলো একটি ওপেন সোর্স প্ল্যাটফর্ম যা অ্যাপ্লিকেশন এবং তার নির্ভরশীলতা একটি কন্টেইনারে প্যাকেজ করে, যাতে এটি যেকোনো পরিবেশে সঠিকভাবে কাজ করে। Flask অ্যাপ্লিকেশনকে Docker কন্টেইনারে চালানোর মাধ্যমে, আপনি আপনার অ্যাপ্লিকেশনকে স্থানীয় এবং প্রোডাকশন পরিবেশে সহজে ডিপ্লয় করতে পারেন।
এই গাইডে, Flask অ্যাপ্লিকেশনের জন্য একটি Dockerfile তৈরি এবং কনফিগার করার প্রক্রিয়া দেখানো হবে।
১. Flask অ্যাপ্লিকেশন তৈরি করা
প্রথমে একটি সাধারণ Flask অ্যাপ্লিকেশন তৈরি করুন। এখানে একটি app.py ফাইল উদাহরণ দেওয়া হল:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'স্বাগতম Flask অ্যাপে!'
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
এখানে:
app.run(debug=True, host='0.0.0.0'): এটি অ্যাপ্লিকেশনকে সব IP ঠিকানা থেকে এক্সেসযোগ্য করে তোলে। Docker কন্টেইনারের মধ্যে Flask অ্যাপ্লিকেশন চলবে, তাইhost='0.0.0.0'ব্যবহার করা হয় যাতে কন্টেইনারের বাহির থেকেও অ্যাপ্লিকেশন এক্সেস করা যায়।
২. Dockerfile তৈরি করা
এখন Flask অ্যাপ্লিকেশনকে Docker কন্টেইনারে চালানোর জন্য একটি Dockerfile তৈরি করতে হবে। এটি একটি টেক্সট ফাইল হবে যা Docker কন্টেইনারের জন্য স্টেপ-by-স্টেপ ইনস্ট্রাকশন দেয়।
Dockerfile:
# ১. Python ইমেজ বেস হিসেবে ব্যবহার করা
FROM python:3.9-slim
# ২. অ্যাপ্লিকেশনের জন্য একটি ডিরেক্টরি তৈরি করা
WORKDIR /app
# ৩. প্রয়োজনীয় প্যাকেজগুলোর লিস্ট কপি করা
COPY requirements.txt .
# ৪. নির্ভরশীলতা ইনস্টল করা
RUN pip install --no-cache-dir -r requirements.txt
# ৫. অ্যাপ্লিকেশন ফাইল কপি করা
COPY . .
# ৬. Flask অ্যাপ চালানোর জন্য পোর্ট নির্ধারণ
EXPOSE 5000
# ৭. Flask অ্যাপ্লিকেশন চালানোর কমান্ড
CMD ["python", "app.py"]
ব্যাখ্যা:
FROM python:3.9-slim: আমরাpython:3.9-slimডকার ইমেজ ব্যবহার করছি যা ছোট আকারের এবং Python 3.9 ভার্সন আছে।WORKDIR /app: এটি কন্টেইনারের ভিতরে/appডিরেক্টরি তৈরি করে এবং সেই ডিরেক্টরিকে ওয়ার্কিং ডিরেক্টরি হিসেবে সেট করে।COPY requirements.txt .:requirements.txtফাইলটি কন্টেইনারে কপি করা হচ্ছে। এই ফাইলটি আমাদের Flask অ্যাপ্লিকেশনের প্রয়োজনীয় প্যাকেজগুলির তালিকা ধারণ করে।RUN pip install --no-cache-dir -r requirements.txt: প্রয়োজনীয় প্যাকেজগুলি কন্টেইনারে ইনস্টল করা হচ্ছে।COPY . .: বর্তমান লোকাল ডিরেক্টরি (এটি যেখানেDockerfileরয়েছে) থেকে সমস্ত ফাইল কন্টেইনারে কপি করা হচ্ছে।EXPOSE 5000: Flask অ্যাপ্লিকেশন সাধারণত পোর্ট 5000 এ চলে, তাই কন্টেইনারে এই পোর্ট এক্সপোজ করা হচ্ছে।CMD ["python", "app.py"]: Flask অ্যাপ্লিকেশন চালানোর জন্য কমান্ড দেওয়া হচ্ছে।
৩. requirements.txt তৈরি করা
আপনি যদি Flask অ্যাপ্লিকেশন পরিচালনা করতে চান, তবে এর জন্য কিছু নির্ভরশীলতা থাকতে হবে, যেমন Flask। একটি requirements.txt ফাইল তৈরি করুন, যাতে সমস্ত প্যাকেজের তালিকা থাকবে:
requirements.txt:
Flask==2.0.1
এটি Flask অ্যাপ্লিকেশনের জন্য নির্দিষ্ট সংস্করণ যুক্ত করেছে। আপনি যদি অন্যান্য প্যাকেজ ব্যবহার করেন, তবে সেগুলোও এখানে যোগ করতে হবে।
৪. Docker Image তৈরি করা
Dockerfile তৈরি করার পর, এখন আপনি Docker ইমেজ তৈরি করতে পারবেন।
- প্রথমে আপনার প্রজেক্টের ডিরেক্টরিতে যান যেখানে
Dockerfileএবংrequirements.txtরয়েছে। - Docker ইমেজ তৈরি করার জন্য নিম্নলিখিত কমান্ডটি চালান:
docker build -t flask-app .
এখানে:
-t flask-app: এটি ইমেজের নামflask-appহিসেবে সেট করে।
৫. Docker Container চালানো
Docker ইমেজ তৈরি করার পর, এখন আপনি কন্টেইনার চালাতে পারেন।
docker run -p 5000:5000 flask-app
এখানে:
-p 5000:5000: এটি কন্টেইনারের পোর্ট 5000 কে লোকাল মেশিনের পোর্ট 5000 এর সাথে ম্যাপ করে, যাতে আপনিhttp://localhost:5000ঠিকানায় Flask অ্যাপ এক্সেস করতে পারেন।
৬. Docker কন্টেইনারের অবস্থা চেক করা
আপনি কন্টেইনার চালু হওয়ার পর এটি চেক করতে পারেন:
docker ps
এটি সমস্ত চলমান Docker কন্টেইনারের তালিকা দেখাবে।
৭. Docker কন্টেইনার বন্ধ করা
যদি আপনি কন্টেইনার বন্ধ করতে চান, তাহলে নিচের কমান্ডটি ব্যবহার করুন:
docker stop <container_id>
এখানে <container_id> হল কন্টেইনারের আইডি, যা আপনি docker ps কমান্ডের মাধ্যমে পেতে পারবেন।
এখন আপনি Flask অ্যাপ্লিকেশন Docker কন্টেইনারে রান করতে প্রস্তুত। Dockerfile এবং requirements.txt ফাইল তৈরি করে এবং Flask অ্যাপ কনফিগার করে আপনি আপনার অ্যাপ্লিকেশনটি যেকোনো পরিবেশে ডিপ্লয় করতে পারবেন, এবং এতে পারফরম্যান্স এবং স্কেলেবিলিটি বাড়ানোর সুবিধা পাওয়া যাবে। Docker কন্টেইনার ব্যবহার করে Flask অ্যাপ্লিকেশন পরিচালনা করা নিরাপদ, সহজ, এবং আরও কার্যকরী।
Read more