নতুন উত্তর
ডকার রচনা আপডেট করা হয়েছে। তাদের এখন একটি সংস্করণ 2 ফাইল ফর্ম্যাট রয়েছে ।
সংস্করণ 2 ফাইলগুলি রচনা 1.6.0+ দ্বারা সমর্থিত এবং সংস্করণ 1.10.0+ এর একটি ডকার ইঞ্জিন প্রয়োজন।
তারা এখন ডকারের নেটওয়ার্কিং বৈশিষ্ট্যটিকে সমর্থন করে যা মাইপ_ডিফল্ট নামে একটি ডিফল্ট নেটওয়ার্ক সেট আপ করে
তাদের ডকুমেন্টেশন থেকে আপনার ফাইলটি নীচের মতো দেখতে পাবেন:
version: '2'
services:
web:
build: .
ports:
- "8000:8000"
fpm:
image: phpfpm
nginx
image: nginx
এই পাতাগুলি স্বয়ংক্রিয়ভাবে ডিফল্ট মাইএপ_ডিফল্ট নেটওয়ার্কে যুক্ত হওয়ায় তারা একে অপরের সাথে কথা বলতে সক্ষম হবে। তারপরে আপনি Nginx কনফিগারেশনে থাকবেন:
fastcgi_pass fpm:9000;
মন্তব্যগুলিতে @ পৃষ্ঠার দ্বারা উল্লিখিত হিসাবে পিএইচপি-এফপিএম 9000 পোর্টে শুনছে তা নিশ্চিত করতে ভুলবেন না, এটি আপনার /etc/php5/fpm/pool.d/www.conf
প্রয়োজন যেখানে সম্পাদনা করে সম্পন্ন করা যেতে পারে listen = 9000
।
পুরানো উত্তর
যারা ডকার / ডকার রচনাটির পুরানো সংস্করণ ব্যবহার করছেন তাদের জন্য আমি নীচে এখানে রেখেছি এবং তথ্যটি জানতে চাই।
এই প্রশ্নের উত্তর খোঁজার চেষ্টা করার সময় আমি গুগলে এই প্রশ্নটি নিয়ে হোঁচট খেতে থাকি তবে ডকার-কমপোজ (যে লেখার সময় কেবল পরীক্ষামূলকভাবে সমর্থন করার জন্য এটি লেখার সময় কেবলমাত্র পরীক্ষার জন্য সমর্থন করেছিল) এর জন্য আমি কী খুঁজছিলাম / তা খুঁজে পেলাম না ডকার নেটওয়ার্কিং বৈশিষ্ট্য)। সুতরাং আমি যা শিখেছি তা গ্রহণ করা এখানে।
ডকার সম্প্রতি এর লিঙ্ক বৈশিষ্ট্যটিকে তার নেটওয়ার্ক বৈশিষ্ট্যের পক্ষে স্বীকৃতি দিয়েছে
সুতরাং ডকার নেটওয়ার্ক বৈশিষ্ট্যটি ব্যবহার করে আপনি এই পদক্ষেপগুলি অনুসরণ করে পাত্রে লিঙ্ক করতে পারেন। পূর্বে লিঙ্কযুক্ত দস্তাবেজগুলিতে বিকল্পগুলি সম্পর্কে পূর্ণ বিবরণের জন্য।
প্রথমে আপনার নেটওয়ার্ক তৈরি করুন
docker network create --driver bridge mynetwork
এরপরে আপনার পিএইচপি-এফপিএম ধারকটি চালান যা নিশ্চিত করে আপনি 9000 পোর্ট খোলেন এবং আপনার নতুন নেটওয়ার্কে ( mynetwork
) নির্ধারণ করুন।
docker run -d -p 9000 --net mynetwork --name php-fpm php:fpm
এখানে গুরুত্বপূর্ণ বিট --name php-fpm
কমান্ডের শেষে যা নাম, আমাদের এটি পরে প্রয়োজন।
এরপরে আপনার এনগিনেক্স ধারকটি পুনরায় চালনা করুন আপনার তৈরি করা নেটওয়ার্কটি পুনরায় বরাদ্দ করুন।
docker run --net mynetwork --name nginx -d -p 80:80 nginx:latest
পিএইচপি এবং এনগিনেক্স ধারকগুলির জন্য আপনি --volumes-from
প্রয়োজন অনুসারে কমান্ড ইত্যাদিতেও যুক্ত করতে পারেন ।
এখন আসে এনগিনেক্স কনফিগারেশন। যা এর সাথে সাদৃশ্যপূর্ণ কিছু দেখাচ্ছে:
server {
listen 80;
server_name localhost;
root /path/to/my/webroot;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
fastcgi_pass php-fpm:9000;
লোকেশন ব্লকে লক্ষ্য করুন । php-fpm
পোর্টে যোগাযোগের ধারক বলছে 9000
। আপনি যখন কোনও ডকার ব্রিজ নেটওয়ার্কে পাত্রে যুক্ত হন তারা সমস্ত স্বয়ংক্রিয়ভাবে একটি হোস্ট ফাইল আপডেট পায় যা তাদের আইপি ঠিকানার বিপরীতে তাদের ধারকটির নাম রাখে। সুতরাং যখন এনগিনেক্স দেখেন যে আপনি php-fpm
আগে নামকরণ করেছেন এবং আপনার mynetwork
ডকার নেটওয়ার্কে নির্ধারিত পিএইচপি-এফপিএম ধারকটির সাথে যোগাযোগ করতে জানেন ।
আপনি আপনার ডকারের ধারক তৈরির প্রক্রিয়া চলাকালীন বা পরে এটি আপনার কাছে যোগ করতে পারেন N