MEAN স্ট্যাক অ্যাপ্লিকেশনটি ধারক করার জন্য ডকার রচনা করুন



ডকার কমপোজ একটি ডকরে জটিল অ্যাপ্লিকেশনগুলি চালনার জন্য একাধিক পাত্রে সংজ্ঞায়িত করার জন্য এবং চালনার জন্য একটি সরঞ্জাম, উদাহরণস্বরূপ একটি MEAN অ্যাপ্লিকেশনটি ধারককরণ।

ডকারের আগের ব্লগগুলিতে আপনি ডকারের চিত্রগুলি, ডকারের পাত্রে কী কী এবং সেগুলির জন্য প্রয়োজনীয়তা সম্পর্কে পড়তেন। আপনি যদি সেগুলি সম্পর্কে না পড়ে থাকেন তবে আমি আপনাকে অনুরোধ করছি পড়ার জন্য , ডকার রচনায় এই ব্লগটি চালিয়ে যাওয়ার আগে।

ডকারের সাথে যে সম্ভাবনাগুলি আসে তা অন্বেষণ করার পরে, এটি আরও শিখতে অবশ্যই খুব উত্তেজনাপূর্ণ। তাই না? কমপক্ষে আমি তখন ছিলাম যখন আমি কোনও চ্যালেঞ্জের মধ্যে পড়ে গিয়েছিলাম।





ডকার রচনাটির পরিচিতি

একটি একক পরিষেবা অ্যাপ্লিকেশন ধারক করা আমার পক্ষে সহজ ছিল। কিন্তু যখন আমাকে পৃথক পাত্রে একাধিক পরিষেবা কনটেইনারাইজ করতে হয়েছিল তখন আমি দৌড়ে একটি রাস্তায় আটকে গেলাম। আমার প্রয়োজনটি ছিল MEAN স্ট্যাক অ্যাপ্লিকেশনটি ধারককরণ এবং হোস্ট করা।

হ্যাঁ, আপনি এটা ঠিক পড়ে। একটি সম্পূর্ণ স্ট্যাক অ্যাপ্লিকেশন। প্রথমদিকে, আমি ভেবেছিলাম এটি সম্ভব নয়। তবে ডকার কমপোজ সম্পর্কে শুনার পরে, আমি জানতাম যে আমার সমস্ত সমস্যার সমাধান হবে।



নবীনদের জন্য সেরা জাভা আদর্শ

ডকার কম্পোজ একটি এমইএন স্ট্যাক অ্যাপ্লিকেশনটিতে প্রতিটি স্ট্যাকের জন্য পৃথক পাত্রে তৈরি করতে (এবং তাদের হোস্ট করুন) ব্যবহার করতে পারেন। মন হ'ল মঙ্গোডিবি এক্সপ্রেস অ্যাঙ্গুলার এবং নোডজেগুলির সংক্ষিপ্ত রূপ। আমি এই ব্লগে যে ডেমোটি প্রদর্শন করব তাও একই বিষয়।

ডকার কমপোজ ব্যবহার করে আমরা এই প্রযুক্তিগুলির প্রত্যেককে একই হোস্টের পৃথক পাত্রে হোস্ট করতে পারি এবং তাদের একে অপরের সাথে যোগাযোগ করার জন্য পেতে পারি। প্রতিটি ধারক অন্য পাত্রে যোগাযোগ করার জন্য একটি বন্দর প্রকাশ করবে।

এই ধারকগুলির যোগাযোগ এবং আপ-টাইম ডকার রচনা দ্বারা পরিচালিত হবে।



সুতরাং আপনি জিজ্ঞাসা করতে পারেন, কিভাবে এই পুরো পরিকাঠামো সেটআপ? ঠিক আছে তাহলে, আমি আপনাকে আরও বিস্তারিত ব্যাখ্যা দিতে দিন।

ডকফেরাইল

আমরা কোনও ডকফাইফিল লিখে কোনও একক-অ্যাপ্লিকেশন ধারককে কীভাবে স্পিন করি তার অনুরূপ, একক ধারক অ্যাপ্লিকেশন প্রতিটি তৈরি করার জন্য আমাদের একটি পৃথক ডকস্পাইল লিখতে হবে। অতিরিক্তভাবে, আমাদের একটি ডকার রচনা ফাইলও লিখতে হবে যা আসল কাজ করবে। ডকার কমপোজ ফাইল বিভিন্ন পাত্রে তৈরি করতে এবং তাদের একে অপরের সাথে ইন্টারঅ্যাক্ট করতে দেয় বিভিন্ন ডকফায়াইলগুলি সম্পাদন করে।

আমাদের ক্ষেত্রে, আমাদের কাছে একটি সম্পূর্ণ স্ট্যাক অ্যাপ্লিকেশন রয়েছে যা মঙ্গোডিবি, এক্সপ্রেসজেএস, অ্যাংুলার এবং নোডজেএস সমন্বিত। মঙ্গোডিবি ব্যাক এন্ড ডাটাবেসটির যত্ন নেয়, নোডজেএস এবং এক্সপ্রেসজেএস সার্ভার সাইড রেন্ডারিংয়ের জন্য এবং অ্যাঙ্গুলারটি ফ্রন্ট এন্ডের জন্য।

MEAN স্ট্যাক অ্যাপ - ডকার রচনা - এডুরেকা

যেহেতু তিনটি উপাদান রয়েছে, তাই প্রতিটি উপাদানগুলির জন্য আমাদের পাত্রে স্পিন করতে হবে। নিম্নলিখিত পাত্রে আমাদের পাতাগুলি স্পিন করতে হবে:

  1. ধারক 1 - কৌণিক
  2. ধারক 2 - নোডজেএস এবং এক্সপ্রেসজেএস
  3. ধারক 3 - মঙ্গোডিবি

ডকার পাত্রে তৈরি করা হচ্ছে

গড় অ্যাপ্লিকেশনটিকে ডকারাইজ করার প্রথম পদক্ষেপ হিসাবে, আসুন কৌণিকের ধারক থেকে শুরু করে প্রতিটি উপাদান তৈরির জন্য ডকফায়াইল লিখি। এই ডকফাইফিলটিকে ‘প্যাকেজ.জসন’ ফাইলের সাথে প্রকল্প ডিরেক্টরিতে উপস্থিত থাকতে হবে। ‘প্যাকেজ.জসন’ এ অ্যাংুলার অ্যাপ্লিকেশন তৈরির জন্য ‘এনপিএম’ দ্বারা নির্ভরশীলতার কোন সংস্করণ ব্যবহার করা উচিত সে সম্পর্কে বিশদ রয়েছে।

1. ফ্রন্ট এন্ডের জন্য ডকফাইফাইল

নোড থেকে: 6 টি আরএন এমকেডির-পি / ইউএসআর / এসসিআর / অ্যাপ্লিকেশন / usr / src / app 4200 সিএমডি এক্সপোজ ['এনএমপি', 'স্টার্ট']

বরাবরের মতো, আমাদের প্রথম কমান্ডটি হল একটি বেস চিত্রটি টানুন এবং আমরা একটি বেস ‘নোড: 6’ চিত্রটি টানছি।

পরের দুটি কমান্ডগুলি অ্যাংুলার কোডগুলি সঞ্চয় করার জন্য এবং কনটেইনারটির ভিতরে এটির কার্যক্ষম ডিরেক্টরি তৈরি করার জন্য ডকার কনটেইনারটির ভিতরে একটি নতুন ডিরেক্টরি ‘/ usr / src / app’ তৈরি করা।

তারপরে আমরা আমাদের প্যাকেজ ডিরেক্টরি থেকে প্যাকেজ.জসন ফাইলটি ধারকের অভ্যন্তরে অনুলিপি করছি।

তারপরে আমরা ‘এনএমপি ক্যাশে ক্লিন’ কমান্ডটি চালাই যা এনপিএম ক্যাশে পরিষ্কার করে।

এর পরে, আমরা ‘এনপিএম ইনস্টল’ কমান্ডটি চালাই যা Angular অ্যাপ্লিকেশনটি হোস্ট করার জন্য প্রয়োজনীয় বয়লার প্লেটগুলি ডাউনলোড করা শুরু করে। এটি ‘প্যাকেজ.জসন’ এ উল্লিখিত নির্ভরতার সংস্করণগুলির উপর ভিত্তি করে বয়লার প্লেটগুলি ডাউনলোড করা শুরু করে।

পরবর্তী ‘রুন’ কমান্ড রানটি হ'ল প্রকল্প ডিরেক্টরি থেকে উপস্থিত সমস্ত কোড, ফোল্ডারগুলি ধারকটির অভ্যন্তরে অনুলিপি করা।

উপরের কমান্ডটি কনটেইনারটিকে ওয়েব ইউআইয়ের মাধ্যমে ফ্রন্ট এন্ড ক্লায়েন্ট অ্যাক্সেস করা ব্যবহারকারীদের দ্বারা অনুরোধগুলি প্রেরণের জন্য ব্যাক এন্ড সার্ভারের সাথে যোগাযোগ করার জন্য পোর্ট নম্বর 4200 প্রকাশ করতে বলেছে।

অবশেষে শেষ কমান্ডটি হ'ল, ‘এনএমপি’ শুরু করার জন্য ‘আরএন’ কমান্ড। এটি আমাদের কৌণিক অ্যাপ্লিকেশন তৈরির জন্য কোডগুলি কার্যকর করা শুরু করে।

অ্যাঙ্গুলার অ্যাপটি এখন প্রস্তুত, তবে এটি ব্যাক এন্ড সার্ভার এবং একটি ডাটাবেসের উপর নির্ভরতার কারণে এটি সঠিকভাবে হোস্ট করা হবে না। সুতরাং আসুন আমরা আরও এগিয়ে যাই এবং পিছনের প্রান্তের সার্ভারটি ধারক করার জন্য একটি ডকস্পাইল লিখি।

2. পিছনের শেষের জন্য ডকফেরাইল

এমনকি এই ডকফায়াইল একটি প্রকল্প ডিরেক্টরিতে উপস্থিত থাকবে। এই ডিরেক্টরিতে এক্সপ্রেস সার্ভারের নির্ভরতা এবং নোডজেএসের অন্যান্য প্রয়োজনীয়তাগুলি নির্ধারণের জন্য 'প্যাকেজ.জসন' ফাইলও থাকবে। তবে সর্বাধিক গুরুত্বপূর্ণ বিষয়, এতে ব্যাক এন্ড সার্ভার সমর্থন করার জন্য প্রজেক্ট কোড রয়েছে।

নোড থেকে: 6 টি আরএন এমকেডির-পি / ইউএসআর / এসসিআর / অ্যাপ্লিকেশন / usr / src / app এক্সপোজ 3000 সিএমডি ['এনপিএম', 'শুরু']

আপনি দেখতে পাচ্ছেন, দুটি ডকফিলিলের মধ্যে অনেকগুলি মিল রয়েছে। আমরা বেস ইমেজ স্তর হিসাবে একই ‘নোড: 6’ ব্যবহার করি, ধারকটির ভিতরে একটি নতুন ডিরেক্টরি তৈরি করি, এটি কার্যকরী ডিরেক্টরি তৈরি করি এবং অন্যদের মধ্যে ‘এনপিএম ইনস্টল’ কমান্ড চালাই। তবে পার্থক্যটি কেবলমাত্র যোগাযোগের জন্য উন্মুক্ত is এই ক্ষেত্রে, পোর্ট নম্বর 3000 সংজ্ঞায়িত করা হয়। এটি যেখানে সার্ভার হোস্ট করা হবে এবং ক্লায়েন্টের কাছ থেকে অনুরোধগুলি সন্ধান করবে।

3. ডাটাবেস

আপনি হয়ত ভাবছেন যে শিরোনামে আমি কেন ‘ডাটাবেসটির জন্য ডকফাইফাইল’ উল্লেখ করিনি। কারণটি হ'ল, আমাদের আসলে কাস্টমাইজেশন করার কোনও প্রয়োজন নেই। আমাদের ডেটা সংরক্ষণ করার জন্য আমরা সরাসরি 'মংগোডিবি' বেস চিত্রটি টানতে পারি এবং কেবল যে বন্দর নম্বরটি ব্যবহার করা যেতে পারে তা প্রকাশ করতে পারি।

এখন আপনার মনে প্রশ্ন উঠবে, আমি কোথায় করব? ওয়েল আমরা ডকার রচনা ফাইলটিতে এটি করতে পারি।

ডকার রচনা ফাইল

ডকার কমপোজ ফাইল হ'ল একটি ওয়াইএএমএল ফাইল যা ডকার অ্যাপ্লিকেশন সেটআপ করার জন্য পরিষেবাগুলি, নেটওয়ার্ক এবং ভলিউম সম্পর্কে বিশদ ধারণ করে।

আপনার ডকার ইঞ্জিনটির সংস্করণ খুঁজতে নীচের কমান্ডটি চালান Run

কিভাবে জাভা জন্য গ্রহনটি কনফিগার করতে হয়
ডকার -v

কমান্ড কার্যকর করা আপনার হোস্টে চলমান সংস্করণটি ফিরিয়ে দেবে। আপনার হোস্টের ডকার ইঞ্জিনের সংস্করণের ভিত্তিতে একটি উপযুক্ত সংস্করণ ডকার কমপোজ ডাউনলোড করুন। ডাউনলোড করার জন্য আপনি উপযুক্ত সংস্করণটি সন্ধান করতে পারেন ডকারের অফিসিয়াল ডকুমেন্টেশন

যেহেতু আমি ডকার ইঞ্জিন সংস্করণ 17.05.0-ce চালাচ্ছি, তাই আমি ডকার রচনা সংস্করণ 3 ব্যবহার করেছি।

ডকার রচনা ইনস্টল করুন

রচনা ডাউনলোড করতে, নীচের কমান্ডের সেটটি চালান।

sudo curl -L https://github.com/docker/compose/relayss/download/1.16.1/docker-compose-`uname -s` -uname -m` -o / usr / স্থানীয় / বিন / ডকার- রচনা sudo chmod + x / usr / স্থানীয় / বিন / ডকার-রচনা

নোট করুন যে কমান্ডের সংস্করণ নম্বরটি আপনি চালাচ্ছেন ডকার ইঞ্জিন সংস্করণের উপর ভিত্তি করে পরিবর্তিত হবে।

নীচে কমান্ডগুলি দেওয়া হল যা আমার ডকার রচনা ফাইলের একটি অংশ।

সংস্করণ: '3.0' # ডকার-রচনা সংস্করণ নির্দিষ্ট করুন # পরিষেবাগুলি চালনার জন্য পরিষেবা / পাত্রে সংজ্ঞা দিন: কৌণিক: # প্রথম পরিষেবা বিল্ডের নাম: কৌণিক অ্যাপ্লিকেশন # ডকফেরাইল পোর্টগুলির ডিরেক্টরি উল্লেখ করুন: - '4200: 4200' # পোর্ট ম্যাপিং এক্সপ্রেস নির্দিষ্ট করুন: # দ্বিতীয় পরিষেবা বিল্ডের নাম: এক্সপ্রেস-সার্ভার # ডকফাইফাইল পোর্টগুলির ডিরেক্টরি উল্লেখ করুন: তৃতীয় পরিষেবা চিত্রের নাম: মঙ্গো # বন্দর থেকে ধারক তৈরি করতে চিত্র নির্দিষ্ট করে: - '27017: 27017' # নির্দিষ্ট পোর্ট ফরওয়ার্ডিং

আমি পুরোপুরি নিশ্চিত যে উপরের ফাইলের কমান্ডগুলি আপনাকে বোঝায় না। সুতরাং, আসুন সেই সমস্যাটি সমাধান করুন।

কোডের প্রথম লাইনে, আমি ব্যবহার করছি ডকার রচনাটির সংস্করণটি সংজ্ঞায়িত করেছি। আপনি যদি কোনও ত্রুটি না ছুঁড়েই সুরকারকে সঠিকভাবে কাজ করতে চান তবে এটি একটি অত্যন্ত গুরুত্বপূর্ণ পদক্ষেপ। আপনার ডকার ইঞ্জিনের সংস্করণ অনুযায়ী ডকার রচনা সংস্করণটি ডাউনলোড করার বিষয়টি নিশ্চিত করুন।

এর পরে, আমি 'পরিষেবাগুলি' কীওয়ার্ড ব্যবহার করে তিনটি ধারককে সংজ্ঞায়িত করেছি। এই পরিষেবাগুলি আমার স্ট্যাক, ফ্রন্ট এন্ড, ব্যাক এন্ড এবং ডাটাবেসের তিনটি উপাদানকে বোঝায়। সুতরাং এই ক্ষেত্রে, আমার ধারকগুলির নামটি আমার পরিষেবাগুলির নাম হবে, অর্থাত্ 'কৌণিক', ​​'এক্সপ্রেস' এবং 'ডাটাবেস'।

‘বিল্ড’ কীওয়ার্ডটি নির্দেশিত করতে ব্যবহৃত হয় যে সেই কন্টেইনারটি স্পিনি করার জন্য ডকফাইফাইল সেই ডিরেক্টরিতে উপস্থিত রয়েছে। দাঁড়াও, তুমি কীভাবে বিভ্রান্ত?

ইহা সহজ. ‘বিল্ড:’ এর পরে পথটি নির্দিষ্ট করা দরকার। আমাদের ক্ষেত্রে, ‘কৌণিক-অ্যাপ্লিকেশন’ এবং ‘এক্সপ্রেস-সার্ভার’ দুটি ডিরেক্টরিতে যাওয়ার পথ যেখানে ডকার কমপোজ ফাইল উপস্থিত রয়েছে সেই ডিরেক্টরি থেকে পৌঁছানো যেতে পারে। আমাদের ডাটাবেস ধারকটির জন্য, আমি কেবল বলেছি ডকফেরাইলের পথের পরিবর্তে একটি ভিত্তি ‘চিত্র: মঙ্গো’ ব্যবহার করুন।

এই প্রতিটি পরিষেবার জন্য, আমি বন্দর নম্বরগুলিও নির্দিষ্ট করেছি যা অন্যান্য পাত্রে (পরিষেবাদি) অনুরোধগুলি গ্রহণ / প্রেরণে ব্যবহার করা যেতে পারে। কৌনিক ক্ষেত্রে 4200, এক্সপ্রেসের ক্ষেত্রে 3000 এবং মঙ্গোর ক্ষেত্রে 27017।

অতিরিক্তভাবে, এক্সপ্রেস ধারকটির ডাটাবেস কনটেয়ারের একটি 'লিঙ্ক:' রয়েছে, যা সূচিত করে যে সার্ভারের পাশের যে কোনও তথ্যই ডাটাবেসে পাঠানো হবে যেখানে এটি সংরক্ষণ করা হবে।

এখন অবশেষে, আমরা একটি রচনা স্থাপনের সিদ্ধান্তে পৌঁছেছি। একটি ডকার রচনা শুরু করতে এবং তিনটি পরিষেবা সহ তিনটি ধারক স্পিন করতে, ডকর কমপোজ ফাইল (ওয়াইএএমএল ফাইল) উপস্থিত রয়েছে এমন ডিরেক্টরি থেকে আমাদের কেবল নীচের দুটি কমান্ড কার্যকর করতে হবে:

ডকার-কম্পোজ বিল্ড ডকার-রচনা আপ

‘ডকার-কমপোজ বিল্ড’ কমান্ডটি পরিষেবাগুলি পুনর্নির্মাণ / পুনর্নির্মাণের জন্য ব্যবহৃত হয় যেখানে, 'ডকার-কমপোজ আপ' কমান্ডারটি পাত্রে তৈরি / শুরু করতে ব্যবহৃত হয়। এগিয়ে যান! নিজের জন্য চেষ্টা করুন।

নীচে ডকার চিত্রগুলি নির্মিত হচ্ছে এবং তারপরে মৃত্যুদন্ড কার্যকর করার স্ক্রিনশট রয়েছে are আপনি খেয়াল করতে পারেন যে কৌণিক চিত্রটি তৈরি হচ্ছে এবং তারপরে ‘কৌণিক: সর্বশেষ’ হিসাবে নামের সাথে ট্যাগ করা হয়েছে।

এছাড়াও, এক্সপ্রেসের জন্য একটি চিত্র ‘এক্সপ্রেস: সর্বশেষ’ হিসাবে নাম এবং ট্যাগ দিয়ে নির্মিত।

এখন যে চিত্রটি নির্মিত হয়েছে, আসুন এটি চালানোর চেষ্টা করুন এবং এভাবে প্রক্রিয়াতে একটি ধারক স্পিনিং করি। নীচে সেই স্ক্রিনশট।

জব ট্র্যাকার এবং হ্যাডুপে টাস্কট্যাকার

নীচে স্ক্রিনশট যা বলেছে যে ‘ওয়েবপ্যাক: সফলভাবে সংকলিত হয়েছে’ যার অর্থ তিনটি পরিষেবা সফলভাবে ডকার দ্বারা ধারককরণ করা হয়েছে।

এখন পাত্রে হোস্ট করা হয়েছে, আপনি তাদের নিজ নিজ বন্দরগুলিতে পরিষেবাগুলি সক্রিয় দেখতে পাবেন। MEAN অ্যাপ্লিকেশনটির GUI এর সাথে যোগাযোগ করার জন্য আপনার ওয়েব ব্রাউজারে নিম্নলিখিত পোর্ট নম্বরগুলি টাইপ করুন।

লোকালহোস্ট: 4200 - কৌণিক অ্যাপ (ফ্রন্ট-এন্ড)
লোকালহোস্ট: 3000 - এক্সপ্রেস সার্ভার এবং নোডজেএস (ব্যাক-এন্ড / সার্ভার-সাইড)
লোকালহোস্ট: 27017 - মঙ্গোডিবি (ডাটাবেস)

এখনও মুগ্ধ? অপেক্ষা করুন, কারণ ডকার এখনও করা হয়নি! মোতায়েনের সংখ্যা সহজেই স্কেল আপ / ডাউন করতে আমরা 'ডকার-কমপোজ স্কেল = 'x'' কমান্ডটি ব্যবহার করতে পারি। অন্য কথায়, আমরা কোনও পরিষেবার জন্য প্রচুর সংখ্যক ধারক তৈরি করতে পারি। নীচে ‘5’ পাত্রে কোনও নির্দিষ্ট পরিষেবা স্কেল করার জন্য সম্পূর্ণ আদেশ রয়েছে:

ডকার-কমপোজ স্কেল = 5

পরিষেবাগুলি এত স্বাচ্ছন্দ্যে স্কেলিং, প্যাকেজিং এবং এগুলি একটি কার্যকর কার্যকর উপায়ে কনটেইনারাইজ করাই ডকারকে একটি সেরা স্থাপনার সরঞ্জাম এবং আমার ব্যক্তিগত প্রিয় হিসাবে পরিণত করে।

যদি এখনও এই ধারণার বিষয়ে আপনার সন্দেহ থাকে তবে আপনি নীচের ভিডিওটি দেখতে পারবেন যেখানে আমি ডকার রচনাটি কীভাবে সেটআপ করতে পারি তার বাস্তব ব্যবহারের মাধ্যমে একই ধারণাটি ব্যাখ্যা করেছি।

ডকার রচনা | MEAN স্ট্যাক অ্যাপ্লিকেশন ধারন করা | DevOps টিউটোরিয়াল

এখন আপনি ডকার সম্পর্কে শিখেছেন, এটি পরীক্ষা করে দেখুন বিশ্বজুড়ে ছড়িয়ে থাকা 250,000 এরও বেশি সন্তুষ্ট শিক্ষার্থীর নেটওয়ার্ক সহ একটি বিশ্বস্ত অনলাইন লার্নিং সংস্থা এডুরেকা দ্বারা। এই এডুরেকা ডকার শংসাপত্র প্রশিক্ষণ কোর্সটি শিখরদের ডকার প্রয়োগ এবং এটির দক্ষতা অর্জনে দক্ষতা অর্জনে সহায়তা করে।

আমাদের জন্য একটি প্রশ্ন আছে? দয়া করে মন্তব্য বিভাগে এটি উল্লেখ করুন এবং আমরা আপনার কাছে ফিরে আসব।