Skip to content

Real-World Project: Python Flask App with Docker

এই প্রজেক্টে আমরা Python এর জনপ্রিয় ফ্রেমওয়ার্ক Flask ব্যবহার করে একটি সিম্পল REST API তৈরি করব এবং সেটিকে ডকার কন্টেইনারে রান করব। এটি ডেটা সায়েন্স এবং মেশিন লার্নিং ইঞ্জিনিয়ারদের জন্য খুব দরকারি।

প্রজেক্টের লক্ষ্য

  • একটি সিম্পল Flask API তৈরি করা।
  • requirements.txt ফাইল ম্যানেজ করা।
  • Python এর জন্য অপ্টিমাইজড Dockerfile লেখা।
  • এনভায়রনমেন্ট ভেরিয়েবল হ্যান্ডেল করা।

১. প্রজেক্ট সেটআপ

প্রথমে একটি ফোল্ডার তৈরি করুন:

bash
mkdir flask-docker-app
cd flask-docker-app

২. অ্যাপ্লিকেশন কোড

app.py

app.py নামে একটি ফাইল তৈরি করুন:

python
from flask import Flask, jsonify
import os

app = Flask(__name__)

@app.route('/')
def home():
    return jsonify({
        "message": "Hello from Dockerized Flask App! 🐍",
        "environment": os.environ.get("ENV", "production")
    })

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

requirements.txt

ডিপেন্ডেন্সি লিস্ট করার জন্য requirements.txt তৈরি করুন:

text
flask==3.0.0

৩. Dockerfile তৈরি করা

আমরা python:3.9-slim ইমেজ ব্যবহার করব কারণ এটি হালকা এবং প্রোডাকশনের জন্য ভালো।

dockerfile
# ১. বেস ইমেজ (স্লিম ভার্সন)
FROM python:3.9-slim

# ২. ওয়ার্কিং ডিরেক্টরি
WORKDIR /app

# ৩. ডিপেন্ডেন্সি ইনস্টল করা
# ক্যাশিং এর সুবিধার জন্য আগে requirements.txt কপি করছি
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# ৪. সোর্স কোড কপি করা
COPY . .

# ৫. এনভায়রনমেন্ট ভেরিয়েবল (অপশনাল)
ENV ENV=development

# ৬. পোর্ট এক্সপোজ এবং রান কমান্ড
EXPOSE 5000
CMD ["python", "app.py"]

৪. বিল্ড এবং রান

ইমেজ বিল্ড করা

bash
docker build -t my-flask-app .

কন্টেইনার রান করা

bash
docker run -d -p 5000:5000 --name flask-api my-flask-app

৫. টেস্ট করা

ব্রাউজার বা Postman এ হিট করুন: http://localhost:5000

আউটপুট:

json
{
  "environment": "development",
  "message": "Hello from Dockerized Flask App! 🐍"
}

৬. ক্লিনআপ

bash
docker stop flask-api
docker rm flask-api

সারাংশ

এই প্রজেক্টে আমরা শিখলাম কীভাবে Python অ্যাপ্লিকেশন ডকারাইজ করতে হয়। pip install এর সময় --no-cache-dir ব্যবহার করা ইমেজ সাইজ ছোট রাখার জন্য একটি বেস্ট প্র্যাকটিস।

Released under the MIT License.