Docker ব্যবহারের মাধ্যমে আপনি আপনার Flask অ্যাপ্লিকেশনকে কনটেইনারাইজ করে সহজেই যেকোনো পরিবেশে ডিপ্লয় করতে পারেন। Docker একাধিক অপারেটিং সিস্টেমে অ্যাপ্লিকেশনটি নির্বিঘ্নে চালানোর সুযোগ দেয়, কারণ এটি অ্যাপ্লিকেশন এবং তার ডিপেনডেন্সি একত্রিত করে এবং একটি নির্দিষ্ট কনটেইনারে পরিচালনা করে। এই টিউটোরিয়ালে আমরা Flask অ্যাপ Docker কনটেইনারে ডিপ্লয় করার প্রক্রিয়া দেখব।
১. Docker কী এবং কেন Flask অ্যাপ ডিপ্লয় করার জন্য ব্যবহার করা হয়?
Docker একটি ওপেন সোর্স প্ল্যাটফর্ম যা কনটেইনারাইজেশন ব্যবস্থাপনার মাধ্যমে অ্যাপ্লিকেশন এবং তার ডিপেনডেন্সি গুলোকে একত্রিত করে এবং একে অপরের থেকে বিচ্ছিন্নভাবে পরিচালনা করতে সক্ষম করে। Docker একটি অ্যাপ্লিকেশন এবং তার সমস্ত ডিপেনডেন্সি (যেমন, লাইব্রেরি, কনফিগারেশন, ফাইল ইত্যাদি) নিয়ে একটি কনটেইনার তৈরি করে, যা যেকোনো পরিবেশে চালানো যায়। Docker আপনার Flask অ্যাপ্লিকেশন এবং এর ডিপেনডেন্সি গুলোকে কনটেইনারের মধ্যে পুরোপুরি সুরক্ষিত রাখে।
২. Flask অ্যাপ ডিপ্লয়মেন্টের জন্য Dockerized ফ্লো
Dockerized Flask অ্যাপ ডিপ্লয় করার জন্য কিছু স্টেপ অনুসরণ করতে হয়:
- Flask অ্যাপ তৈরি করা
- Dockerfile তৈরি করা
- Docker ইমেজ তৈরি করা
- Docker কনটেইনার রান করা
- Docker Compose (ঐচ্ছিক) ব্যবহার করা
৩. Flask অ্যাপ তৈরি করা
প্রথমে একটি সাধারণ Flask অ্যাপ তৈরি করি।
app.py:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return "Hello, Docker World!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000)
এখানে:
host="0.0.0.0": এটি Flask অ্যাপ্লিকেশনটি সমস্ত IP ঠিকানায় শোনার জন্য কনফিগার করে, কারণ Docker কনটেইনারের মধ্যে রান হচ্ছে।port=5000: Flask ডিফল্টভাবে 5000 পোর্টে রান হয়।
৪. Dockerfile তৈরি করা
Docker কনটেইনারের মধ্যে Flask অ্যাপটি রান করার জন্য একটি Dockerfile তৈরি করতে হবে।
Dockerfile:
# Python বেস ইমেজ ব্যবহার করা
FROM python:3.9-slim
# কাজের ডিরেক্টরি তৈরি করা
WORKDIR /app
# প্রয়োজনীয় ফাইল কপি করা
COPY requirements.txt requirements.txt
# ডিপেনডেন্সি ইনস্টল করা
RUN pip install --no-cache-dir -r requirements.txt
# অ্যাপ কপি করা
COPY . .
# Flask অ্যাপ চালানো
CMD ["python", "app.py"]
এখানে:
FROM python:3.9-slim: এটি Python 3.9 এর একটি স্লিম বেস ইমেজ ব্যবহার করছে।WORKDIR /app: এটি/appনামক ডিরেক্টরি তৈরি করবে যেখানে Flask অ্যাপ থাকবে।COPY requirements.txt requirements.txt:requirements.txtফাইল কপি করে Flask অ্যাপের সমস্ত ডিপেনডেন্সি ইনস্টল করার জন্য।RUN pip install -r requirements.txt: Flask অ্যাপের ডিপেনডেন্সি ইনস্টল করা।CMD ["python", "app.py"]: Flask অ্যাপ চালানোর কমান্ড।
৫. requirements.txt তৈরি করা
Flask অ্যাপের সমস্ত প্যাকেজ ডিপেনডেন্সি requirements.txt ফাইলে রাখতে হবে।
requirements.txt:
Flask==2.0.2
এখানে:
- Flask==2.0.2: Flask এর নির্দিষ্ট ভার্সন উল্লেখ করা হয়েছে। আপনার অ্যাপের ডিপেনডেন্সি অনুসারে অন্যান্য লাইব্রেরি যোগ করতে পারেন।
৬. Docker ইমেজ তৈরি করা
এখন Flask অ্যাপ্লিকেশনটি Docker কনটেইনারে রান করার জন্য Docker ইমেজ তৈরি করতে হবে। Dockerfile থাকার কারণে আমরা ইমেজ তৈরি করতে পারব।
ধাপ ১: Docker ইমেজ বিল্ড করা
docker build -t flask-docker-app .
এখানে:
-t flask-docker-app: ইমেজের নাম প্রদান করা হচ্ছে।.: Dockerfile যেখানে অবস্থিত, সেই ডিরেক্টরি নির্দেশ করছে।
ধাপ ২: Docker ইমেজ চেক করা
docker images
এটি আপনার তৈরি করা Docker ইমেজ দেখাবে।
৭. Docker কনটেইনার রান করা
Docker কনটেইনারে Flask অ্যাপ চালাতে নিচের কমান্ড ব্যবহার করুন:
docker run -p 5000:5000 flask-docker-app
এখানে:
-p 5000:5000: এটি কনটেইনারের 5000 পোর্টকে হোস্ট মেশিনের 5000 পোর্টের সাথে সংযুক্ত করবে, যাতে আপনি ওয়েব ব্রাউজারেhttp://localhost:5000গিয়ে অ্যাপটি দেখতে পারেন।
কনটেইনার রান হওয়ার পর:
এখন আপনি http://localhost:5000 ব্রাউজারে গিয়ে Flask অ্যাপ দেখতে পাবেন।
৮. Docker Compose ব্যবহার (ঐচ্ছিক)
যদি আপনার অ্যাপ্লিকেশনটি আরও জটিল হয় এবং ডাটাবেস বা অন্যান্য সার্ভিস দরকার হয়, তাহলে Docker Compose ব্যবহার করে একাধিক কনটেইনার একসাথে চালানো যেতে পারে।
docker-compose.yml ফাইল তৈরি করা
version: '3.8'
services:
flask:
build: .
ports:
- "5000:5000"
environment:
- FLASK_ENV=development
এখানে:
build: .: এটি Dockerfile এর মাধ্যমে Flask অ্যাপ ইমেজ তৈরি করবে।ports: "5000:5000": এটি কনটেইনারের পোর্ট 5000 কে হোস্ট মেশিনের পোর্ট 5000 এর সাথে সংযুক্ত করবে।
Docker Compose কমান্ড দিয়ে Flask অ্যাপ চালানো
docker-compose up --build
এটি Docker Compose এর মাধ্যমে Flask অ্যাপ্লিকেশন চালাবে।
৯. Dockerized Flask অ্যাপ্লিকেশন টেস্ট করা
Dockerized Flask অ্যাপ্লিকেশনটি এখন ওয়েব ব্রাউজারে বা curl কমান্ড দিয়ে পরীক্ষা করা যেতে পারে।
curl http://localhost:5000
এটি "Hello, Docker World!" মেসেজ রিটার্ন করবে।
Flask এবং Docker Integration একটি শক্তিশালী পদ্ধতি যা Flask অ্যাপ্লিকেশন এবং তার সমস্ত ডিপেনডেন্সি গুলোকে একটি কনটেইনারের মধ্যে পৃথকভাবে পরিচালনা করতে সক্ষম করে। Docker ব্যবহার করে, আপনি আপনার Flask অ্যাপ্লিকেশনটিকে যে কোন পরিবেশে নির্ভরযোগ্যভাবে ডিপ্লয় এবং পরিচালনা করতে পারেন। Dockerized Flask অ্যাপ্লিকেশনটি উন্নত পারফরম্যান্স এবং স্কেলেবিলিটি প্রদান করে, কারণ এটি একক কনটেইনারে ডিপ্লয় করা হয় এবং পরিবেশের সাথে একীভূত থাকে।