ডকার হল অ্যাপ্লিকেশন তৈরি, চালানো এবং বিতরণের জন্য একটি প্ল্যাটফর্ম। এটি আপনাকে আপনার অ্যাপ্লিকেশন এবং এর সমস্ত নির্ভরতাকে একটি একক পাত্রে প্যাকেজ করার অনুমতি দেয়, যা তারপরে ডকার ইনস্টল করা যেকোনো মেশিনে চালানো যেতে পারে।
এটি ডকারকে ওয়েব অ্যাপ্লিকেশন স্থাপনের জন্য আদর্শ করে তোলে, কারণ এটি আপনার অ্যাপ্লিকেশনটিকে একটি পরিবেশ থেকে অন্য পরিবেশে স্থানান্তর করা সহজ করে তোলে কোনো সামঞ্জস্যতার সমস্যা নিয়ে চিন্তা না করে।
অন্যদিকে জ্যাঙ্গো হল একটি পাইথন ওয়েব ফ্রেমওয়ার্ক যা শক্তিশালী এবং মাপযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করা সহজ করে তোলে। জ্যাঙ্গো বাক্সের বাইরে বেশ কয়েকটি বৈশিষ্ট্য সরবরাহ করে, যেমন একটি ব্যবহারকারী প্রমাণীকরণ সিস্টেম, একটি ডাটাবেস বিমূর্তকরণ স্তর এবং একটি টেমপ্লেট ইঞ্জিন।
এটি জ্যাঙ্গো দিয়ে শুরু করা এবং দ্রুত এবং সহজে জটিল ওয়েব অ্যাপ্লিকেশন তৈরি করা সহজ করে তোলে।
একটি জ্যাঙ্গো অ্যাপ্লিকেশন ডকারাইজ করা এবং স্থাপন করা একটি অপেক্ষাকৃত সহজ প্রক্রিয়া। জড়িত প্রধান পদক্ষেপ হল:
1. আপনার জ্যাঙ্গো অ্যাপ্লিকেশনের জন্য একটি ডকারফাইল তৈরি করুন৷
2. আপনার ডকারফাইল থেকে একটি ডকার ইমেজ তৈরি করুন।
3. একটি উৎপাদন পরিবেশে ডকার ইমেজ স্থাপন করুন।
এই নিবন্ধে, আমি আপনাকে বিস্তারিতভাবে একটি জ্যাঙ্গো অ্যাপ্লিকেশন ডকারাইজিং এবং স্থাপনের সাথে জড়িত পদক্ষেপগুলির মাধ্যমে নিয়ে যেতে হবে। আমি উৎপাদনে জ্যাঙ্গো অ্যাপ্লিকেশন স্থাপনের জন্য কিছু টিপস এবং সর্বোত্তম অনুশীলনও প্রদান করব।
এই টিউটোরিয়ালটি অনুসরণ করতে, আপনার নিম্নলিখিত পূর্বশর্তগুলির প্রয়োজন হবে:
আপনি যদি আপনার জ্যাঙ্গো অ্যাপ্লিকেশনটিকে উত্পাদনে স্থাপন করতে চান তবে আপনাকে AWS, Azure বা Google ক্লাউড প্ল্যাটফর্মের মতো একটি ক্লাউড হোস্টিং প্রদানকারীরও প্রয়োজন হবে৷ কিন্তু এই টিউটোরিয়ালের জন্য, আমি Heroku ব্যবহার করব।
একবার আপনার সমস্ত পূর্বশর্ত ইনস্টল হয়ে গেলে, আপনি আপনার জ্যাঙ্গো অ্যাপ্লিকেশন ডকারাইজিং এবং স্থাপন শুরু করতে প্রস্তুত!
একটি নতুন জ্যাঙ্গো প্রকল্প শুরু করতে, আপনাকে django-admin
কমান্ডটি ব্যবহার করতে হবে। এই কমান্ডটি আপনাকে আপনার জ্যাঙ্গো অ্যাপ্লিকেশনের জন্য একটি প্রকল্প ডিরেক্টরি এবং কিছু মৌলিক ফাইল তৈরি করতে দেয়। উদাহরণস্বরূপ, যদি আপনি my_project
নামে একটি প্রকল্প তৈরি করতে চান, আপনি আপনার টার্মিনালে এই কমান্ডটি চালাতে পারেন:
django-admin startproject my_project
এটি নিম্নলিখিত কাঠামোর সাথে `my_project` নামে একটি ডিরেক্টরি তৈরি করবে:
আমার প্রকল্প/
├── manage.py
└── প্রকল্প/
├──
├── settings.py
└── urls.py
manage.py
ফাইলটি একটি স্ক্রিপ্ট যা আপনাকে আপনার প্রকল্পের জন্য বিভিন্ন কাজ সম্পাদন করতে দেয়, যেমন ডেভেলপমেন্ট সার্ভার চালানো, ডাটাবেস মাইগ্রেশন তৈরি করা এবং আপনার কোড পরীক্ষা করা। project/
ডিরেক্টরিতে আপনার প্রজেক্টের জন্য সেটিংস এবং কনফিগারেশন ফাইল রয়েছে।
settings.py
ফাইলটি আপনার প্রকল্পের প্রধান সেটিংস যেমন ডাটাবেস সংযোগ, ইনস্টল করা অ্যাপস এবং মিডলওয়্যারকে সংজ্ঞায়িত করে। urls.py
ফাইলটি আপনার প্রজেক্টের URL গুলিকে আপনার অ্যাপের ভিউতে ম্যাপ করে।
একটি নতুন জ্যাঙ্গো প্রকল্প তৈরি করার পরে, আপনি ডেভেলপমেন্ট সার্ভার চালিয়ে স্থানীয়ভাবে এটি পরীক্ষা করতে পারেন। ডেভেলপমেন্ট সার্ভার হল একটি সাধারণ ওয়েব সার্ভার যা আপনার মেশিনে চলে এবং আপনার প্রোজেক্ট ফাইলগুলিকে পরিবেশন করে। ডেভেলপমেন্ট সার্ভার শুরু করতে, আপনার টার্মিনালে এই কমান্ডটি চালান:
python manage.py runserver
এটি ডিফল্টরূপে 8000 পোর্টে সার্ভার শুরু করবে। তারপর আপনি আপনার ব্রাউজার খুলতে পারেন এবং ডিফল্ট জ্যাঙ্গো হোমপেজ দেখতে http://localhost:8000/ এ যেতে পারেন।
একটি জ্যাঙ্গো প্রজেক্ট বেশ কয়েকটি ফাইল এবং ডিরেক্টরির সমন্বয়ে গঠিত যা আপনার ওয়েব অ্যাপ্লিকেশনটির কার্যকারিতা এবং চেহারা নির্ধারণ করে। জ্যাঙ্গো প্রকল্পের প্রধান উপাদানগুলি হল:
manage.py
: একটি স্ক্রিপ্ট যা আপনার প্রকল্প পরিচালনার জন্য বিভিন্ন কমান্ড প্রদান করে, যেমন অ্যাপ তৈরি করা, ডাটাবেস স্থানান্তর করা এবং আপনার কোড পরীক্ষা করা।
project/
: একটি ডিরেক্টরি যাতে আপনার প্রকল্পের সেটিংস এবং কনফিগারেশন ফাইল থাকে। এই ডিরেক্টরির প্রধান ফাইলগুলি হল:
`settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application.
apps/
: একটি ডিরেক্টরি যাতে আপনার প্রজেক্ট তৈরি করে এমন সব জ্যাঙ্গো অ্যাপ রয়েছে। প্রতিটি জ্যাঙ্গো অ্যাপ হল একটি পৃথক পাইথন প্যাকেজ যা আপনার ওয়েব অ্যাপ্লিকেশনের জন্য একটি নির্দিষ্ট কার্যকারিতা বা বৈশিষ্ট্য প্রদান করে। আপনি আপনার নিজস্ব অ্যাপ তৈরি করতে পারেন বা তৃতীয় পক্ষের উত্স থেকে বিদ্যমান অ্যাপগুলি ব্যবহার করতে পারেন।
স্থানীয়ভাবে প্রকল্পটি পরীক্ষা করতে, আপনি ডেভেলপমেন্ট সার্ভার বা জ্যাঙ্গো দ্বারা প্রদত্ত টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করতে পারেন। ডেভেলপমেন্ট সার্ভার হল একটি সাধারণ ওয়েব সার্ভার যা আপনার মেশিনে চলে এবং আপনার প্রোজেক্ট ফাইলগুলিকে পরিবেশন করে। টেস্টিং ফ্রেমওয়ার্ক হল একটি টুল যা আপনাকে আপনার কোডের জন্য ইউনিট পরীক্ষা লিখতে এবং চালাতে দেয়।
ডেভেলপমেন্ট সার্ভার ব্যবহার করতে, আপনি আপনার টার্মিনালে এই কমান্ডটি চালাতে পারেন:
python manage.py runserver
এটি ডিফল্টরূপে 8000 পোর্টে সার্ভার শুরু করবে। তারপর আপনি আপনার ব্রাউজার খুলতে পারেন, এবং ডিফল্ট জ্যাঙ্গো হোমপেজ দেখতে `http://localhost:8000/`-এ যেতে পারেন।
টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করতে, আপনি আপনার টার্মিনালে এই কমান্ডটি চালাতে পারেন:
python manage.py test
এটি আপনার প্রকল্পের জন্য সমস্ত ইউনিট পরীক্ষা চালাবে। যদি সমস্ত পরীক্ষায় উত্তীর্ণ হয়, আপনি এইরকম একটি বার্তা দেখতে পাবেন:
Ran 1 test in 0.001s Ok
কোনো পরীক্ষায় ব্যর্থ হলে, আপনি ব্যর্থতার বিবরণ সহ একটি ত্রুটি বার্তা দেখতে পাবেন। আপনি আপনার কোড ডিবাগ এবং ঠিক করতে এই তথ্য ব্যবহার করতে পারেন।
একবার আপনি স্থানীয়ভাবে প্রকল্পটি পরীক্ষা করে এবং ফলাফলের সাথে সন্তুষ্ট হলে, আপনি এটিকে একটি উত্পাদন পরিবেশে স্থাপন করতে পারেন।
একটি ডকারফাইল হল একটি টেক্সট ফাইল যাতে একটি ডকার ইমেজ কীভাবে তৈরি করা যায় তার নির্দেশাবলী রয়েছে। একটি ডকার ইমেজ হল একটি স্বয়ংসম্পূর্ণ এক্সিকিউটেবল প্যাকেজ যা একটি অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সবকিছু অন্তর্ভুক্ত করে: কোড, রানটাইম, সিস্টেম টুলস, সিস্টেম লাইব্রেরি এবং সেটিংস।
একটি ডকারফাইল তৈরি করতে, আপনাকে বেস ইমেজ, প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করার জন্য চালানোর কমান্ড এবং অ্যাপ্লিকেশন শুরু করার জন্য চালানোর কমান্ডগুলি নির্দিষ্ট করতে হবে।
এখানে একটি জ্যাঙ্গো প্রকল্পের জন্য একটি উদাহরণ ডকারফাইল:
FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
এই ডকারফাইলটি একটি ডকার ইমেজ তৈরি করবে যাতে পাইথন 3.9, জ্যাঙ্গো এবং জ্যাঙ্গো প্রজেক্ট ফাইল রয়েছে। পোর্ট 8000-এ জ্যাঙ্গো ডেভেলপমেন্ট সার্ভার শুরু করার জন্য ছবিটি কনফিগার করা হবে।
একটি docker-compose.yml ফাইল হল একটি YAML ফাইল যা একটি Dockerized অ্যাপ্লিকেশন তৈরি করে এমন পরিষেবাগুলিকে সংজ্ঞায়িত করে৷ একটি পরিষেবা একটি একক ডকার কন্টেইনার বা ডকার কন্টেইনারগুলির একটি গ্রুপ হতে পারে।
Django প্রকল্পের জন্য একটি docker-compose.yml ফাইল তৈরি করতে, আপনাকে ওয়েব পরিষেবা এবং ডাটাবেস পরিষেবা সংজ্ঞায়িত করতে হবে। ওয়েব পরিষেবাটি জ্যাঙ্গো অ্যাপ্লিকেশন চালাবে এবং ডাটাবেস পরিষেবাটি ডাটাবেস চালাবে যা জ্যাঙ্গো অ্যাপ্লিকেশন ব্যবহার করে।
এখানে একটি জ্যাঙ্গো প্রকল্পের জন্য একটি উদাহরণ docker-compose.yml ফাইল রয়েছে:
version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data
এই docker-compose.yml ফাইলটি দুটি পরিষেবা সংজ্ঞায়িত করে: web
এবং db
। web
পরিষেবাটি ডকারফাইল থেকে ডকার ইমেজ তৈরি করবে যা আমরা পূর্ববর্তী বিভাগে তৈরি করেছি। web
সার্ভিস হোস্ট মেশিনে পোর্ট 8000 প্রকাশ করবে যাতে আমরা জ্যাঙ্গো ডেভেলপমেন্ট সার্ভার অ্যাক্সেস করতে পারি।
db
পরিষেবা অফিসিয়াল PostgreSQL ডকার ইমেজ ব্যবহার করবে। db
পরিষেবা হোস্ট মেশিনে postgres
ডিরেক্টরিকে কন্টেইনারের ভিতরে /var/lib/postgresql/data
ডিরেক্টরিতে মাউন্ট করবে। এটি নিশ্চিত করবে যে ডাটাবেস ফাইলগুলি কন্টেইনার পুনঃসূচনার মধ্যে টিকে আছে।
ডকার কন্টেইনারগুলি তৈরি এবং চালানোর জন্য, আমরা নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারি:
docker-compose up -d
এই কমান্ডটি 'ওয়েব' এবং 'ডিবি' পরিষেবাগুলির জন্য ডকার ইমেজ তৈরি করবে যদি সেগুলি ইতিমধ্যে বিদ্যমান না থাকে। কমান্ডটি তখন 'ওয়েব' এবং 'ডিবি' পরিষেবাগুলির জন্য ডকার কন্টেইনারগুলি শুরু করবে।
একবার ডকার কন্টেইনারগুলি চলমান হলে, আমরা একটি ওয়েব ব্রাউজার ব্যবহার করে স্থানীয়ভাবে ডকারাইজড জ্যাঙ্গো প্রকল্পটি পরীক্ষা করতে পারি। একটি ওয়েব ব্রাউজার খুলুন এবং `http://localhost:8000`-এ নেভিগেট করুন। আপনি এখন Django উন্নয়ন পৃষ্ঠা দেখতে সক্ষম হওয়া উচিত.
আপনি http://localhost:8000/admin/
এ জ্যাঙ্গো অ্যাডমিন পৃষ্ঠাতেও লগ ইন করতে পারেন। ব্যবহারকারীর নাম এবং পাসওয়ার্ড ডিফল্টরূপে admin
এবং admin
।
এখন, গিট, গিটহাব এবং হেরোকু ব্যবহার করে আপনার জ্যাঙ্গো প্রকল্পটিকে একটি ক্লাউড প্ল্যাটফর্মে স্থাপন করার সময়। আপনি একটি ওয়েব ব্রাউজার ব্যবহার করে আপনার স্থাপন করা ওয়েব অ্যাপ্লিকেশন পরীক্ষা করবেন।
গিট হল একটি সফটওয়্যার টুল যা আপনাকে আপনার প্রোজেক্টের সোর্স কোড পরিচালনা করতে সাহায্য করতে পারে। এটি আপনাকে আপনার কোডে করা পরিবর্তনগুলি ট্র্যাক করতে, অন্যান্য বিকাশকারীদের সাথে সহযোগিতা করতে এবং কিছু ভুল হলে পূর্ববর্তী সংস্করণগুলিতে ফিরে যেতে দেয়৷
গিট আপনাকে আপনার কোডকে রিমোট রিপোজিটরিতে ঠেলে দেওয়ার অনুমতি দিতে পারে, যেমন গিটহাব, যেখানে আপনি আপনার কোড সঞ্চয় করতে এবং অন্যদের সাথে ভাগ করতে পারেন।
আপনি যদি ইতিমধ্যে একটি GitHub সংগ্রহস্থল তৈরি করে থাকেন তবে অনুগ্রহ করে নিম্নলিখিতগুলি উপেক্ষা করুন৷
আপনার জ্যাঙ্গো প্রকল্পের জন্য একটি গিটহাব সংগ্রহস্থল তৈরি করতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- গিটহাবে একটি বিনামূল্যের অ্যাকাউন্ট তৈরি করুন
- আপনার প্রোফাইল পৃষ্ঠায় যান, এবং সংগ্রহস্থলের পাশের নতুন বোতামে ক্লিক করুন।
- আপনার সংগ্রহস্থলের একটি নাম দিন, যেমন django-docker-app
, এবং ঐচ্ছিকভাবে একটি বিবরণ যোগ করুন।
- রিপোজিটরি তৈরি করুন বোতামে ক্লিক করুন।
এখন আপনি GitHub এ একটি খালি সংগ্রহস্থল তৈরি করেছেন। এই সংগ্রহস্থলে আপনার কোড পুশ করতে, আপনাকে আপনার টার্মিনালে `git` কমান্ড ব্যবহার করতে হবে। আমি অনুমান করছি যে আপনি ইতিমধ্যে আপনার স্থানীয় মেশিনে গিট ইনস্টল করেছেন এবং আপনার জ্যাঙ্গো প্রকল্প ফোল্ডারে একটি গিট সংগ্রহস্থল শুরু করেছেন। যদি তা না হয়, তা করতে O অফিসিয়াল ডকুমেন্টেশন অনুসরণ করুন।
আপনার কোডটি গিটহাবে পুশ করতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- টার্মিনালে আপনার জ্যাঙ্গো প্রোজেক্ট ফোল্ডারে যান এবং আপনার সংগ্রহস্থলের বর্তমান অবস্থা দেখতে git status
টাইপ করুন। আপনি এই মত কিছু দেখতে হবে:
On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a")
এর মানে হল যে আপনার কাছে কিছু পরিবর্তিত ফাইল রয়েছে যা কমিটের জন্য মঞ্চস্থ করা হয়নি। তাদের প্রতিশ্রুতিবদ্ধ করার জন্য, আপনাকে git add
কমান্ড ব্যবহার করতে হবে।
- git add
টাইপ করুন। প্রতিশ্রুতির জন্য সমস্ত পরিবর্তিত ফাইল স্টেজ করার জন্য। বিকল্পভাবে, আপনি ফাইলের নাম নির্দিষ্ট করতে পারেন যা আমরা স্টেজ করতে চাই, যেমন git add
Dockerfile docker-compose.yml
requirements.txt
।
- আমাদের সংগ্রহস্থলের আপডেট হওয়া অবস্থা দেখতে আবার git status
টাইপ করুন। আপনি এই মত কিছু দেখতে হবে:
On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt
এর মানে হল যে আপনার কিছু পরিবর্তন আছে যা কমিটের জন্য মঞ্চস্থ করা হয়েছে। সেগুলি কমিট করার জন্য, আপনাকে git commit
কমান্ড ব্যবহার করতে হবে।
- টাইপ করুন git commit -m "Add Docker configuration files"
আমরা কি করেছি তা বর্ণনা করে একটি বার্তা সহ পর্যায়ভুক্ত পরিবর্তনগুলি কমিট করতে। বিকল্পভাবে, আপনি -m
পতাকা বাদ দিতে পারেন এবং একটি সম্পাদকে একটি দীর্ঘ বার্তা লিখতে পারেন যা git commit
টাইপ করার পরে খুলবে।
- আমাদের সংগ্রহস্থলের চূড়ান্ত অবস্থা দেখতে আবার git status
টাইপ করুন। আপনি এই মত কিছু দেখতে হবে:
On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean
এর মানে হল যে আপনার কাছে একটি কমিট রয়েছে যা এখনও রিমোট রিপোজিটরিতে পুশ করা হয়নি। এটি পুশ করতে, আপনাকে git push
কমান্ডটি ব্যবহার করতে হবে।
- গিটহাবের রিমোট রিপোজিটরিতে আপনার স্থানীয় প্রতিশ্রুতি ঠেলে দিতে git push origin main
টাইপ করুন।
বিকল্পভাবে, আপনি দূরবর্তী নাম এবং শাখার নাম উল্লেখ করতে পারেন যা আপনি পুশ করতে চান, যেমন git push origin main
।
আপনাকে আপনার GitHub ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখতে বলা হতে পারে বা নিজেকে প্রমাণীকরণের জন্য একটি ব্যক্তিগত অ্যাক্সেস টোকেন ব্যবহার করতে বলা হতে পারে।
- আপনার GitHub সংগ্রহস্থল পৃষ্ঠাতে যান, এবং এটি রিফ্রেশ করুন। পৃষ্ঠায় আপনার কোড এবং প্রতিশ্রুতি বার্তা দেখতে হবে।
আপনি সফলভাবে আপনার কোড GitHub এ পুশ করেছেন। এখন, আপনি পরবর্তী ধাপে যেতে পারেন, যা আপনার জ্যাঙ্গো প্রকল্পকে হেরোকুতে স্থাপন করছে।
Heroku একটি ক্লাউড প্ল্যাটফর্ম যা আপনাকে ওয়েব অ্যাপ্লিকেশন স্থাপন, পরিচালনা এবং স্কেল করার অনুমতি দেয়। এটি বিভিন্ন প্রোগ্রামিং ভাষা, ফ্রেমওয়ার্ক এবং ডাটাবেস সমর্থন করে, যেমন পাইথন, জ্যাঙ্গো এবং পোস্টগ্রেএসকিউএল।
এটি বিভিন্ন বৈশিষ্ট্য এবং অ্যাড-অনগুলিও প্রদান করে যা আমাদের ওয়েব ডেভেলপমেন্ট অভিজ্ঞতাকে উন্নত করে, যেমন লগিং, মনিটরিং, ক্যাশিং, নিরাপত্তা ইত্যাদি।
আপনার হেরোকু দরকার কারণ এটি আপনার স্থাপনার প্রক্রিয়াকে সহজ এবং দ্রুত করে তোলে। সার্ভার, নেটওয়ার্ক বা অপারেটিং সিস্টেমের মতো অন্তর্নিহিত অবকাঠামো নিয়ে চিন্তা না করে আপনি আপনার জ্যাঙ্গো প্রকল্প স্থাপন করতে Heroku ব্যবহার করতে পারেন।
আপনি ট্রাফিক এবং চাহিদা অনুযায়ী আপনার ওয়েব অ্যাপ্লিকেশন স্কেল করতে Heroku ব্যবহার করতে পারেন। Heroku আপনার জন্য ওয়েব স্থাপনার সমস্ত জটিলতা এবং চ্যালেঞ্জ পরিচালনা করে।
একটি Heroku অ্যাকাউন্ট তৈরি করতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- Heroku এ যান এবং Signup বাটনে ক্লিক করুন।
- প্রয়োজনীয় তথ্য পূরণ করুন, যেমন নাম, ইমেইল, পাসওয়ার্ড ইত্যাদি।
- পাইথনের মতো একটি প্রাথমিক বিকাশের ভাষা চয়ন করুন।
- বিনামূল্যে অ্যাকাউন্ট তৈরি করুন বোতামে ক্লিক করুন।
- আমাদের ইমেইল চেক করুন এবং আমাদের অ্যাকাউন্ট যাচাই করতে লিঙ্কে ক্লিক করুন।
এখন, আপনি একটি বিনামূল্যে Heroku অ্যাকাউন্ট তৈরি করেছেন। Heroku CLI টুল ইনস্টল করতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- [ Heroku CLI তে যান এবং আমাদের অপারেটিং সিস্টেমের জন্য উপযুক্ত ইনস্টলার নির্বাচন করুন, যেমন Windows, Mac OS X, বা Linux।
- ডাউনলোড করুন এবং ইনস্টলার চালান এবং স্ক্রিনে নির্দেশাবলী অনুসরণ করুন।
- একটি টার্মিনাল খুলুন, এবং ইনস্টলেশন সফল হয়েছে কিনা তা যাচাই করতে heroku --version
টাইপ করুন। আপনি এই মত কিছু দেখতে হবে:
heroku/7.59.0 win32-x64 node-v12.21.0
এখন, আপনি আপনার স্থানীয় মেশিনে Heroku CLI টুল ইনস্টল করেছেন। আপনি টার্মিনাল থেকে Heroku এর সাথে ইন্টারঅ্যাক্ট করতে এই টুলটি ব্যবহার করতে পারেন।
আমাদের জ্যাঙ্গো প্রকল্পের জন্য একটি হেরোকু অ্যাপ তৈরি করতে, আমাদের এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- টার্মিনালে আপনার জ্যাঙ্গো প্রোজেক্ট ফোল্ডারে যান এবং Heroku CLI টুল ব্যবহার করে আপনার Heroku অ্যাকাউন্টে লগ ইন করতে heroku login
টাইপ করুন। আপনাকে আপনার ইমেল এবং পাসওয়ার্ড লিখতে বা নিজেকে প্রমাণীকরণ করতে একটি ওয়েব ব্রাউজার ব্যবহার করতে বলা হতে পারে।
- টাইপ করুন heroku create django-docker-app
নাম দিয়ে একটি নতুন Heroku অ্যাপ তৈরি করতে django-docker-app
। বিকল্পভাবে, আপনি নামটি বাদ দিতে পারেন এবং Heroku কে আপনার জন্য একটি এলোমেলো নাম তৈরি করতে দিতে পারেন। আপনি এই মত কিছু দেখতে হবে:
Creating ⬢ django-docker-app... done https://django-docker-app.herokuapp.com/ | https://git.heroku.com/django-docker-app.git
এর মানে হল যে আপনি একটি ওয়েব URL এবং একটি Git URL সহ একটি নতুন Heroku অ্যাপ তৈরি করেছেন৷ ওয়েব ইউআরএল হল যেখানে আপনি আপনার স্থাপন করা ওয়েব অ্যাপ্লিকেশন অ্যাক্সেস করতে পারেন এবং গিট ইউআরএল হল যেখানে আপনি আপনার কোডকে হেরোকুতে পুশ করতে পারেন।
- টাইপ করুন heroku config:set SECRET_KEY=<your_secret_key>
আমাদের জ্যাঙ্গো প্রকল্পের SECRET_KEY সেটিংসের জন্য একটি পরিবেশ পরিবর্তনশীল সেট করতে। আপনাকে <your_secret_key>
একটি এলোমেলো স্ট্রিং দিয়ে প্রতিস্থাপন করতে হবে যা আপনি জ্যাঙ্গো সিক্রেট কী জেনারেটরের মতো একটি টুল ব্যবহার করে তৈরি করতে পারেন।
বিকল্পভাবে, আপনি আপনার settings.py ফাইলে বিদ্যমান গোপন কী ব্যবহার করতে পারেন, কিন্তু নিরাপত্তার কারণে এটি সুপারিশ করা হয় না।
- আপনার Heroku অ্যাপে একটি বিনামূল্যের PostgreSQL ডাটাবেস অ্যাড-অন যোগ করতে heroku addons:create heroku-postgresql:hobby-dev
। এটি আপনার জ্যাঙ্গো প্রকল্পের জন্য একটি নতুন ডাটাবেস তৈরি করবে এবং আপনার জ্যাঙ্গো প্রকল্পের DATABASE_URL সেটিংসের জন্য একটি পরিবেশ পরিবর্তনশীল সেট করবে। আপনি এই মত কিছু দেখতে হবে:
Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation
এর মানে হল যে আপনি PostgreSQL-curved-12345 এবং URL DATABASE_URL নামের একটি PostgreSQL ডাটাবেস অ্যাড-অন যোগ করেছেন।
- আপনি আপনার Heroku অ্যাপের জন্য সেট করেছেন এমন পরিবেশ ভেরিয়েবলের তালিকা দেখতে heroku config
টাইপ করুন। আপনি এই মত কিছু দেখতে হবে:
=== django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key>
এর মানে হল যে আপনার কাছে দুটি পরিবেশের ভেরিয়েবল আছে, DATABASE_URL এবং SECRET_KEY , যা আপনি আপনার জ্যাঙ্গো প্রকল্প সেটিংসে ব্যবহার করতে পারেন৷
এখন আপনি একটি Heroku অ্যাপ তৈরি করেছেন এবং আমাদের জ্যাঙ্গো প্রকল্পের জন্য প্রয়োজনীয় সেটিংস কনফিগার করেছেন, আপনি পরবর্তী ধাপে যেতে পারেন, যা আপনার জ্যাঙ্গো প্রকল্পকে হেরোকুতে স্থাপন করছে।
কিভাবে ` heroku
কমান্ড ব্যবহার করে হেরোকুতে আপনার জ্যাঙ্গো প্রকল্প স্থাপন করবেন ?
heroku
কমান্ড ব্যবহার করে হেরোকুতে আমাদের জ্যাঙ্গো প্রকল্প স্থাপন করতে, আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:
- টার্মিনালে আপনার জ্যাঙ্গো প্রোজেক্ট ফোল্ডারে যান এবং Heroku CLI টুল ব্যবহার করে Heroku কন্টেইনার রেজিস্ট্রিতে লগ ইন করতে heroku container:login
করুন। এটি আপনাকে আমাদের ডকার ইমেজকে হেরোকুতে পুশ করার অনুমতি দেবে।
- heroku container:push web -a django-docker-app
তৈরি করতে এবং আপনার ডকার ইমেজকে হেরোকুতে পুশ করুন। আপনাকে আপনার Heroku অ্যাপের নাম উল্লেখ করতে হবে, যা এই ক্ষেত্রে django-docker-app । আপনি এই মত কিছু দেখতে হবে:
=== Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command.
এর মানে হল যে আপনি আপনার ডকার ইমেজ তৈরি করেছেন এবং হেরোকুতে পুশ করেছেন।
- heroku container:release web -a django-docker-app
। আপনি এই মত কিছু দেখতে হবে:
Releasing images web to django-docker-app... done
এর মানে হল যে আপনি আপনার Heroku অ্যাপে আপনার ডকার ইমেজ প্রকাশ করেছেন।
- আপনার Heroku অ্যাপে ডাটাবেস মাইগ্রেশন চালানোর জন্য heroku run python manage.py migrate -a django-docker-app
টাইপ করুন। এটি PostgreSQL ডাটাবেসে আপনার জ্যাঙ্গো প্রকল্পের জন্য প্রয়োজনীয় টেবিল এবং সূচী তৈরি করবে। আপনি এই মত কিছু দেখতে হবে:
Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK
এর মানে হল যে আপনি আপনার Heroku অ্যাপে ডাটাবেস মাইগ্রেশন চালাচ্ছেন।
- একটি ওয়েব ব্রাউজারে আমাদের স্থাপন করা ওয়েব অ্যাপ্লিকেশন খুলতে heroku open -a django-docker-app
টাইপ করুন৷ আপনার দেখতে হবে আমাদের জ্যাঙ্গো প্রজেক্ট হেরোকুতে চলছে।
আপনি heroku
কমান্ড ব্যবহার করে আপনার জ্যাঙ্গো প্রকল্প সফলভাবে হেরোকুতে স্থাপন করেছেন। আপনি এখন আপনার ওয়েব অ্যাপ্লিকেশন উপভোগ করতে পারেন এবং অন্যদের সাথে শেয়ার করতে পারেন৷
এই টিউটোরিয়ালে, আপনি শিখেছেন কিভাবে ডকার, জ্যাঙ্গো এবং হেরোকু ব্যবহার করে জ্যাঙ্গো অ্যাপ্লিকেশনগুলিকে ডকারাইজ এবং স্থাপন করতে হয়। আপনি দেখেছেন কীভাবে ডকার আপনাকে আপনার অ্যাপ্লিকেশনগুলির জন্য বিচ্ছিন্ন এবং পুনরুত্পাদনযোগ্য পরিবেশ তৈরি করতে সহায়তা করতে পারে এবং হেরোকু কীভাবে স্থাপনা প্রক্রিয়াকে সহজ করতে পারে।
আপনি একাধিক কন্টেইনার এবং পরিষেবাগুলি পরিচালনা করতে ডকার কম্পোজ কীভাবে ব্যবহার করবেন এবং বিভিন্ন পরিবেশের জন্য আপনার জ্যাঙ্গো সেটিংস কীভাবে কনফিগার করবেন তাও শিখেছেন।
জ্যাঙ্গো অ্যাপ্লিকেশান ডকারাইজিং এবং স্থাপনের অনেক সুবিধা থাকতে পারে, যেমন:
- দ্রুত বিকাশ এবং পরীক্ষার চক্র
- সহজে সহযোগিতা এবং কোড ভাগ করে নেওয়া
- প্ল্যাটফর্ম জুড়ে ধারাবাহিক এবং নির্ভরযোগ্য কর্মক্ষমতা
- সম্পদের পরিমাপযোগ্যতা এবং নমনীয়তা
- নিরাপত্তা এবং নির্ভরতা বিচ্ছিন্নতা
পরবর্তী পড়ুন: দ্রুত এবং নির্ভরযোগ্য সফ্টওয়্যার সরবরাহের জন্য CI/CD অপরিহার্য। সর্বাধিক দক্ষতার জন্য আপনার CI/CD পাইপলাইন অপ্টিমাইজ করতে, সঠিক সরঞ্জামগুলি চয়ন করুন, আপনার কর্মপ্রবাহকে স্ট্রিমলাইন করুন, স্বয়ংক্রিয় পরীক্ষা এবং QA ব্যবহার করুন, বিল্ডগুলিকে সমান্তরাল করুন, পর্যবেক্ষণ এবং প্রতিক্রিয়া লুপগুলি ব্যবহার করুন, সুরক্ষা পরীক্ষা করুন এবং ক্রমাগত আপনার পাইপলাইন উন্নত করুন৷ আরও পড়ুন
আরও পড়ুন: ডকারকন 2023 এ আমরা যা শিখেছি তা আরও পড়ুন
- ডকার ডকুমেন্টেশন : ডকারের জন্য অফিসিয়াল ডকুমেন্টেশন, যেখানে আপনি গাইড, টিউটোরিয়াল, রেফারেন্স উপকরণ এবং আরও অনেক কিছু খুঁজে পেতে পারেন।
- জ্যাঙ্গো ডকুমেন্টেশন : জ্যাঙ্গোর জন্য অফিসিয়াল ডকুমেন্টেশন, যেখানে আপনি বিষয়, কীভাবে-প্রদর্শক, রেফারেন্স উপকরণ এবং আরও অনেক কিছু খুঁজে পেতে পারেন।