ডকার বিল্ড কনটেক্সট বোঝা (কেন আপনার ডকারইগনোর ব্যবহার করা উচিত)

  • প্রধান
  • খবর
  • ডকার বিল্ড কনটেক্সট বোঝা (কেন আপনার ডকারইগনোর ব্যবহার করা উচিত)

ডকার বিল্ড কনটেক্সট ফাইল এবং ডিরেক্টরিগুলিকে বোঝায় যেগুলি ডকার ইঞ্জিন চালানোর সময় উপলব্ধ হবে। |_+_| বিল্ড প্রসঙ্গে অন্তর্ভুক্ত নয় এমন কিছু আপনার |_+_|-এর কমান্ডগুলিতে অ্যাক্সেসযোগ্য হবে না ফাইল

আপনার |_+_| ব্যবহার করা উচিত নির্মাণ প্রসঙ্গ ছোট রাখা. দুর্ঘটনাক্রমে অপ্রয়োজনীয় ফাইলগুলি অন্তর্ভুক্ত করার ফলে একটি অত্যধিক বড় বিল্ড কনটেক্সট হতে পারে, যার ফলে বিল্ডগুলি দীর্ঘতর হতে পারে।

বিল্ড প্রসঙ্গ কি?

এখানে একটি সহজ |_+_| আমি পাঠাই:

|_+_|

এটি |_+_| ব্যবহার করে একটি ডকার ইমেজ তৈরি করে আপনার কাজের ডিরেক্টরিতে অবস্থিত। ফলস্বরূপ চিত্রটি |_+_| হিসাবে চিহ্নিত করা হবে, যদিও এই টিউটোরিয়ালের জন্য এই বিশদটি গুরুত্বপূর্ণ নয়।

আপনার |_+_| ভিতরে, আপনি সম্ভবত |_+_| ব্যবহার করবেন আপনার ছবিতে ফাইল এবং ফোল্ডার যোগ করতে:

|_+_|

এই উদাহরণ ফাইলটি কপি করে |_+_| ফাইল এবং |_+_| আপনার ধারক মধ্যে ডিরেক্টরি. প্রথম নজরে, মনে হচ্ছে যে |_+_| ঘোষণাটি কেবল একটি পাথকে বোঝায় যা কার্যকারী ডিরেক্টরির সাথে সম্পর্কিত সমাধান করা হয়েছে।

ব্যাপার সেটা না. |_+_| আপনি শুধুমাত্র বিল্ড প্রসঙ্গে উপলব্ধ সংস্থান অ্যাক্সেস করতে পারেন। এই উদাহরণে, বিল্ড কনটেক্সট হল ওয়ার্কিং ডিরেক্টরী, তাই এতে থাকা ফাইল এবং ফোল্ডারগুলি উপলব্ধ। ডিফল্টরূপে, ডকার |_+_|-এ পাঠানো ডিরেক্টরির বিষয়বস্তু ব্যবহার করে নির্মাণ প্রসঙ্গ হিসাবে।

কেন নির্মাণ প্রসঙ্গ ব্যবহার করা হয়?

বিল্ড প্রসঙ্গটি গুরুত্বপূর্ণ কারণ ডকার সিএলআই এবং ডকার ইঞ্জিন একই মেশিনে চলতে পারে না। আপনি যখন চালান |_+_|, CLI ফাইল এবং ফোল্ডারগুলিকে ডকার ইঞ্জিনে তৈরি করতে পাঠায়। ফাইল এবং ফোল্ডারের এই সেটটি বিল্ড প্রসঙ্গ হয়ে ওঠে।

এছাড়াও, সমস্ত বিল্ড প্রসঙ্গ কার্যকারী ডিরেক্টরি পুনঃব্যবহারের মতো সহজ নয়। ডকার |_+_|-এর প্রদত্ত পথ হিসাবে গিট রিপোজিটরি ইউআরএলগুলিকে সমর্থন করে। এই ক্ষেত্রে, বিল্ড কনটেক্সট নির্দিষ্ট সংগ্রহস্থলের বিষয়বস্তু হয়ে ওঠে।

ডিফল্ট 'সমস্ত অন্তর্ভুক্ত করুন' বিল্ড প্রসঙ্গ আচরণ অনেক ছোট সংগ্রহস্থলের জন্য ঠিক আছে। সমস্যাগুলি স্পষ্ট হয়ে ওঠে যখন আপনি আপনার কাজের ডিরেক্টরিতে ফাইলগুলি যোগ করেন যা আপনার ব্যবহার করে না |_+_|। ডিফল্ট বাইনারি, ডকুমেন্টেশন ফাইল এবং নির্ভরতা লাইব্রেরির মতো সংস্থানগুলি অপ্রয়োজনীয় হলেও বিল্ড প্রসঙ্গে অন্তর্ভুক্ত করা হবে।

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

ডকার নিজের থেকে অপ্রয়োজনীয় অনুলিপিগুলি কমানোর চেষ্টা করে। বিল্ডকিট বিল্ড ব্যাকএন্ড: ব্যবহৃত ডকার 18.09 থেকে ক্রমবর্ধমান স্থানান্তর জন্য সমর্থন যোগ করা হয়েছে. এর মানে হল যে ডকারকে সাধারণত শুধুমাত্র শেষ বিল্ড থেকে যোগ করা বা পরিবর্তিত ফাইলগুলি অনুলিপি করতে হবে। এটি প্রথম বিল্ডে পুরো ব্যাচটি অনুলিপি করতে থাকবে।

বিল্ড প্রসঙ্গ থেকে সম্পদ বাদ

কপির অপচয় স্থায়ীভাবে ঠিক করতে, আপনাকে ডকারকে বলতে হবে বিল্ড প্রসঙ্গ থেকে কী বাদ দিতে হবে। একটি ফাইল তৈরি করে শুরু করা যাক। |_+_|:

|_+_|

যে সহজ |_+_| Node.js এ লেখা একটি অ্যাপ্লিকেশন ব্যবহার করা যেতে পারে। Node.js প্রোগ্রাম |_+_| ব্যবহার করে প্যাকেজ ম্যানেজার হিসেবে। প্যাকেজগুলি একটি ফাইলে ইনস্টল করা আছে |_+_| বাইন্ডার আপনি যখন চালান |_+_| স্থানীয়ভাবে, বিকাশের সময়, প্যাকেজগুলি |_+_| এ ডাউনলোড করা হবে কাজের ডিরেক্টরিতে ফোল্ডার।

|_+_| জাতি |_+_| নিজেই নির্ভরতা অর্জন করতে। এটি নিশ্চিত করে যে ছবিটি সম্পূর্ণরূপে স্বয়ংসম্পূর্ণ। ফাইলে কপি করার দরকার নেই স্থানীয় |_+_| ফোল্ডার, কারণ এটি |_+_| দ্বারা ব্যবহৃত হয় না ফাইল

এটি সত্ত্বেও, ডকার এখনও |_+_| অন্তর্ভুক্ত করবে ডিফল্ট বিল্ড প্রসঙ্গে ফোল্ডার। এটি বাদ দিতে, একটি ফাইল তৈরি করুন। |_+_| কাজের ডিরেক্টরিতে ফাইল। এই ফাইলটিতে |_+_| এর মতো একটি সিনট্যাক্স রয়েছে৷

|_+_|

সমস্ত রুট |_+_| এ তালিকাভুক্ত বিল্ড প্রসঙ্গ থেকে বাদ দেওয়া হবে। আপনার নিশ্চিত হওয়া উচিত |_+_| প্রজেক্টের ফাইল সিস্টেম স্ট্রাকচারের পরিবর্তনের সাথে তাল মিলিয়ে রাখে। আপনি শুধুমাত্র প্রাসঙ্গিক পাথগুলি (যেগুলি আসলে আপনার |_+_| দ্বারা ব্যবহৃত) বিল্ড প্রসঙ্গে উপস্থিত রয়েছে তা যাচাই করে ডকার বিল্ড প্রসঙ্গ অনুলিপি সময় উল্লেখযোগ্যভাবে হ্রাস করতে পারেন।

আমাদের উদাহরণের ক্ষেত্রে, |_+_| আমাদের প্রকল্পে অনেক নির্ভরতা থাকলে ফোল্ডারটিতে হাজার হাজার ফাইল অন্তর্ভুক্ত থাকতে পারে। বিল্ড প্রেক্ষাপটের অংশ হিসাবে ডকার ডেমনে তাদের অনুলিপি করা কয়েক সেকেন্ড সময় নিতে পারে এবং ব্যয়বহুল হতে পারে। |_+_| এটি তাদের সম্পূর্ণরূপে উপেক্ষা করে, |_+_| এর মাধ্যমে তাদের নির্ভরতা দাবি করে পরিবর্তে.

অন্যান্য নির্মাণ প্রসঙ্গ সমস্যা

ব্যবহারে নেই |_+_| এটি অন্যান্য সমস্যাও প্রবর্তন করতে পারে। এই লাইনের সাথে একটি ডকারফাইল বিশেষভাবে সমস্যাযুক্ত:

|_+_|

এই কপি হবে সব আপনার কাজের ডিরেক্টরিতে। আপনি আপনার উপলব্ধি না হওয়া পর্যন্ত এটি একটি ভাল ধারণা বলে মনে হতে পারে। |_+_| ইতিহাস এবং সমস্ত গোপন ফাইল আপনার পাত্রে শেষ হবে।

একটি আনফিল্টারড বিল্ড প্রসঙ্গ অনুলিপি করা ডকার-স্তরের ক্যাশিংকে কার্যকরভাবে কাজ করতে বাধা দেয়। আমি এটা পছন্দ করি কিছু আপনার কাজের ডিরেক্টরিতে সম্ভবত বিল্ডগুলির মধ্যে পরিবর্তন হবে, ডকার ফাইলটি চালাতে হবে |_+_| প্রতিবার নির্দেশাবলী। এটি পরবর্তী নির্দেশাবলীর জন্য একটি নতুন স্তর এবং নতুন স্তর তৈরি করবে, এমনকি যদি আপনার আগ্রহের সংস্থানগুলি পরিবর্তিত না হয়।

বিল্ড প্রসঙ্গ সংকুচিত করুন

বিল্ড পারফরম্যান্সকে আরও উন্নত করতে আপনি বিল্ড প্রসঙ্গ সংকুচিত করতে পারেন। পাস করুন |_+_| একটি |_+_| চিহ্নিত করুন জিজিপ কম্প্রেশন প্রয়োগ করতে। প্রসঙ্গটি ডকার ডেমনে পাঠানোর আগে সংকোচন ঘটে।

|_+_|

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

উপসংহার

ডকার বিল্ড প্রসঙ্গ ফাইলগুলিকে সংজ্ঞায়িত করে যা আপনার |_+_| এ অনুলিপি করার জন্য উপলব্ধ হবে সংরক্ষণাগার বিল্ড শুরু হওয়ার আগে বিল্ড কনটেক্সট ডকার ডেমনে কপি করা হয়।

ডিফল্টভাবে কনটেক্সট তৈরি করুন গিট রিপোজিটরি বা ডিরেক্টরির বিষয়বস্তু যা আপনি |_+_| এ পরিবর্তন করেছেন। আপনি একটি |_+_| তৈরি করে বিল্ড প্রসঙ্গের উপাদানগুলি বাদ দিতে পারেন কার্যধারা এটি ডকার ডেমনে পাস করা অপ্রয়োজনীয় ডেটার পরিমাণ হ্রাস করে দক্ষতা বাড়ায়।

আপনি কি মনে করেন?