এই উত্তরটি ডকার-রচনা সংস্করণ 2 এর জন্য এবং এটি 3 সংস্করণেও কাজ করে
আপনি depend_on ব্যবহার করার পরেও ডেটা অ্যাক্সেস করতে পারেন।
আপনি যদি ডকার ডকস ডকার কমপোজ এবং জ্যাঙ্গোর দিকে তাকান তবে আপনি এখনও এটির মতো ডাটাবেসটি অ্যাক্সেস করতে পারেন:
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
লিঙ্ক এবং depend_on এর মধ্যে পার্থক্য কী?
লিঙ্ক:
আপনি যখন কোনও ডাটাবেসের জন্য ধারক তৈরি করেন, উদাহরণস্বরূপ:
docker run -d --name=test-mysql --env="MYSQL_ROOT_PASSWORD=mypassword" -P mysql
docker inspect d54cf8a0fb98 |grep HostPort
এবং আপনি খুঁজে পেতে পারেন
"HostPort": "32777"
এর অর্থ আপনি আপনার লোকালহোস্ট পোর্ট 32777 (ধারক মধ্যে 3306) থেকে ডাটাবেস সংযোগ করতে পারেন তবে এই পোর্টটি প্রতিবার আপনি যখনই পুনরায় চালু করবেন বা ধারকটি সরিয়ে ফেলবেন তখনই এটি পরিবর্তন হবে। সুতরাং আপনি সর্বদা ডাটাবেসের সাথে সংযুক্ত থাকবেন এবং এটি কোন পোর্টটি তা জানেন না তা নিশ্চিত করতে আপনি লিঙ্কগুলি ব্যবহার করতে পারেন।
web:
links:
- db
নির্ভর করে:
আমি জর্জিও ফেরারিস ডকার-কমপোজ.আইএমএল থেকে একটি দুর্দান্ত ব্লগ পেয়েছি: ভি 1 থেকে ভি 2
যখন ডকার-কমপোজ ভি 2 ফাইলগুলি কার্যকর করে, এটি স্বয়ংক্রিয়ভাবে ফাইলটিতে সংজ্ঞায়িত সমস্ত ধারকগুলির মধ্যে একটি নেটওয়ার্ক তৈরি করবে এবং প্রতিটি ধারক তাত্ক্ষণিকভাবে ডকার-কমপোজ.আইএমএল ফাইলের মধ্যে সংজ্ঞায়িত নামগুলি ব্যবহার করে অন্যকে উল্লেখ করতে সক্ষম হবে।
এবং
সুতরাং আমাদের আর লিঙ্কের দরকার নেই; লিঙ্কগুলি আমাদের ডিবি ধারক এবং আমাদের ওয়েব-সার্ভারের ধারকগুলির মধ্যে একটি নেটওয়ার্ক যোগাযোগ শুরু করতে ব্যবহৃত হয়েছিল, তবে এটি ইতিমধ্যে ডকার-রচনা দ্বারা সম্পন্ন হয়েছে
হালনাগাদ
পরিষেবার মধ্যে নির্ভরতা প্রকাশ করা, যার দুটি প্রভাব রয়েছে:
docker-compose up
নির্ভরতা ক্রমে পরিষেবা শুরু করবে। নিম্নলিখিত উদাহরণে, ওয়েবের আগে ডিবি এবং রেডিস শুরু হবে।
docker-compose up SERVICE
স্বয়ংক্রিয়ভাবে SERVICE এর নির্ভরতা অন্তর্ভুক্ত করবে। নিম্নলিখিত উদাহরণে, ডকার-কমপেজ ওয়েবও তৈরি করবে এবং ডিবি এবং রিডিস শুরু করবে।
সাধারণ উদাহরণ:
version: '2'
services:
web:
build: .
depends_on:
- db
- redis
redis:
image: redis
db:
image: postgres
দ্রষ্টব্য: depend_on ওয়েব শুরু করার আগে db এবং redis "প্রস্তুত" হওয়ার অপেক্ষা রাখে না - কেবল সেগুলি শুরু না করা পর্যন্ত। আপনার যদি কোনও পরিষেবা প্রস্তুত হওয়ার অপেক্ষা করতে হয়, তবে এই সমস্যাটির আরও সমাধানের জন্য স্টার্টআপ অর্ডার এবং এটি সমাধানের কৌশলগুলি দেখুন।
--link
ফ্ল্যাগ বর্তমানে Docker এর একটি অননুমোদিত উত্তরাধিকার বৈশিষ্ট্য এবং ডকুমেন্টেশন সুপারিশ "এটা শেষ পর্যন্ত সরিয়ে ফেলা হতে পারে" Docker: উত্তরাধিকার ধারক লিঙ্ক । ডকার নেটওয়ার্ক বৈশিষ্ট্য বা ডকার রচনা পদ্ধতিটি ব্যবহার না করার পরামর্শ দেওয়া হচ্ছে । আমি অনুভব করেছি যে এখানে এই বৈশিষ্ট্যটি সম্পর্কে জানতে শেখার পক্ষে এটি সহায়ক হবে।