docker-compose.yml ফাইলটি Docker Compose এর কনফিগারেশন ফাইল, যা YAML ফর্ম্যাটে লেখা হয়। এই ফাইলটি একাধিক Docker সার্ভিসের কনফিগারেশন সংজ্ঞায়িত করে, এবং এটি একটি অ্যাপ্লিকেশনকে চালানোর জন্য প্রয়োজনীয় সমস্ত তথ্য ধারণ করে। নিচে docker-compose.yml ফাইলের মৌলিক গঠন এবং এর উপাদানগুলো বিস্তারিতভাবে আলোচনা করা হলো।
Docker Compose YAML ফাইলের মৌলিক গঠন
version: '3.8' # Docker Compose এর সংস্করণ
services: # সার্ভিস ডিফিনিশন শুরু
web: # সার্ভিসের নাম
image: nginx:latest # ব্যবহৃত Docker ইমেজ
ports: # পোর্ট ম্যাপিং
- "8080:80"
networks: # নেটওয়ার্ক যুক্ত করা
- my-network
db: # আরেকটি সার্ভিসের নাম
image: mysql:latest # ব্যবহৃত Docker ইমেজ
environment: # পরিবেশ ভেরিয়েবল
MYSQL_ROOT_PASSWORD: example
networks: # নেটওয়ার্ক যুক্ত করা
- my-network
cache: # তৃতীয় সার্ভিসের নাম
image: redis:latest # ব্যবহৃত Docker ইমেজ
networks: # নেটওয়ার্ক যুক্ত করা
- my-network
networks: # নেটওয়ার্ক ডিফিনিশন
my-network: # নেটওয়ার্কের নাম
উপাদানসমূহের ব্যাখ্যা
version:
- Docker Compose ফাইলের সংস্করণ নির্ধারণ করে। এটি বিভিন্ন সংস্করণের জন্য বৈশিষ্ট্য এবং কার্যকারিতা নিয়ন্ত্রণ করে। সাধারণত, সর্বশেষ স্থিতিশীল সংস্করণ ব্যবহার করা হয় (যেমন
'3.8')।
services:
- এটি একটি ব্লক যা অ্যাপ্লিকেশনটির বিভিন্ন সার্ভিসগুলিকে সংজ্ঞায়িত করে। প্রতিটি সার্ভিসের নামের পরে একটি কনফিগারেশন ব্লক থাকবে।
service_name:
- সার্ভিসের নাম, যেমন
web,db,cacheইত্যাদি। এটি সাধারণত কন্টেইনারের উদ্দেশ্য নির্দেশ করে।
image:
- ব্যবহার করা Docker ইমেজের নাম। এটি অফিসিয়াল Docker Hub থেকে বা স্থানীয় ইমেজ থেকে হতে পারে। উদাহরণস্বরূপ,
nginx:latest।
ports:
- কন্টেইনার এবং হোস্টের মধ্যে পোর্ট ম্যাপিং। এটি নির্দেশ করে কোন হোস্ট পোর্ট কন্টেইনারের কোন পোর্টের সাথে সংযুক্ত হবে। উদাহরণস্বরূপ,
"8080:80"অর্থাৎ হোস্টের 8080 পোর্ট কন্টেইনারের 80 পোর্টের সাথে সংযুক্ত।
networks:
- এই ব্লকটি কন্টেইনারগুলির জন্য কিভাবে যোগাযোগ হবে তা নির্ধারণ করে। একাধিক সার্ভিস একই নেটওয়ার্কে যুক্ত হলে তারা একে অপরের সাথে সহজেই যোগাযোগ করতে পারে।
environment:
- পরিবেশ ভেরিয়েবল নির্ধারণ করে। যেমন ডেটাবেসের জন্য রুট পাসওয়ার্ড নির্ধারণ করতে
MYSQL_ROOT_PASSWORDব্যবহার করা হয়েছে।
networks:
- এখানে বিভিন্ন নেটওয়ার্কের নাম এবং কনফিগারেশন উল্লেখ করা হয়। এই উদাহরণে,
my-networkনামে একটি নেটওয়ার্ক তৈরি করা হয়েছে।
সারসংক্ষেপ
docker-compose.yml ফাইলটি Docker Compose ব্যবহার করে অ্যাপ্লিকেশনটির সমস্ত সার্ভিস, কনফিগারেশন, এবং নেটওয়ার্কের জন্য একটি কেন্দ্রিয় কনফিগারেশন ফাইল। এর সঠিক গঠন এবং উপাদানগুলো বোঝার মাধ্যমে আপনি সহজেই বিভিন্ন সার্ভিসগুলিকে একটি সাথে পরিচালনা করতে পারবেন। Docker Compose ফাইল ব্যবহারের মাধ্যমে আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং ডিপ্লয়মেন্ট প্রক্রিয়া আরও কার্যকরী এবং সংগঠিত হয়ে ওঠে।
Read more