সত্যিকারের পুনরাবৃত্তিযোগ্য বিল্ড তৈরির চেষ্টাটির ব্যবহারিক উদাহরণ দেওয়ার জন্য নিম্নলিখিতগুলি বিবেচনা করুন -
একটি বিল্ড পাইপলাইন যা গিট সংগ্রহস্থল দিয়ে শুরু হয় যার জন্য কোনও ব্যবহারকারী কখনও ইতিহাস পুনরায় লিখতে বা না ডেলা শাখা মুছতে পারে।
উত্স কোডটি যাচাই করার পরে প্রথম "বিল্ড" পদক্ষেপটি একটি ধারক স্পিন করা যাতে সমস্ত বিল্ড সময় নির্ভরতা থাকে।
বিল্ড টাইম ধারক চলমান আউটপুট একটি ধারক যা সংকলিত বাইনারি রয়েছে।
বিল্ডটির পুনরাবৃত্তির আরও গুরুত্বপূর্ণ, নিম্নলিখিত ট্যাগগুলি চূড়ান্ত ধারকটিতে যুক্ত করা হয়:
- মূল সংগ্রহস্থলটিতে উত্স কোডের সঠিক হ্যাশ এবং উভয়ই গিট রেপোর url এবং কোডটির একটি টার বল স্ন্যাপশট যা একটি আর্টিক্ট রিপোজিটরিতে আপলোড করা হয়।
- বিল্ড কন্টেইনারটির সঠিক সংস্করণ যা বিল্ডটি চালানোর জন্য ব্যবহৃত হয়েছিল।
- বাইনারিটি লোড হওয়া আসল বেস ইমেজের সঠিক সংস্করণ।
- বাইনারি তৈরি করতে ব্যবহৃত সমস্ত বিল্ড-টাইম ভেরিয়েবলের মান।
- তিনটি কনটেইনার যেখানে তৈরি হয়েছিল সেই সাথে ডকারের সংস্করণ এবং সেই সাথে যে সংস্করণটি তারা তৈরি করার সময় সেখানে চলছে।
এই সমস্ত মেটা ডেটা যুক্ত করে আমরা নিশ্চিত করতে পারি যে ভবিষ্যতের যে কোনও সময়ে আমরা বিল্ড নির্ভরতাগুলির সঠিক সেটটি তৈরি করতে পারি (বিল্ড কনটেইনারের মাধ্যমে), বাইনারিটি একটি সঠিক ধাপের সেট দিয়ে সংকলন করতে পারি (বিল্ড পাত্রে সংযুক্ত) ) এবং এটি সমস্ত রান-টাইম নির্ভরতা (বেস চিত্র ট্যাগ ব্যবহার করে) এর সাথে অন্য একটি পরিচিত বেস চিত্রে প্যাকেজ করুন এবং এটি সমস্ত ধারকটির ট্যাগের উপর ভিত্তি করে উত্স কোডের সঠিক সংস্করণের ভিত্তিতে তৈরি করা যেতে পারে।
তাত্ত্বিকভাবে এটি আমাদের উচিত একটি বিল্ড সংস্করণটি পুনরুত্পাদন করার দক্ষতা দেয়।
এর গুরুত্বটি হ'ল এটি আমাদের প্রযোজনায় কী চলছে তা দেখার অনুমতি দেয় এবং, যদিও সবকিছুতে উল্লেখযোগ্যভাবে সংস্করণ অগ্রগতি হয়েছে, ফিরে গিয়ে কোডটির মূল সংস্করণটি টানুন, বেস ইমেজটি তৈরি করুন এবং ধারকটি নির্মাণ করুন যাতে আমরা পারি, উদাহরণস্বরূপ , ঠিক আগের মতো পুনর্নির্মাণের আগে সেই সংস্করণে একটি হট ফিক্স প্রয়োগ করুন যাতে আমরা জেনে আবার জানতে পারি যে এটি হ'ল একমাত্র ব-দ্বীপ হট ফিক্সের সাথে হুবহু একই রকম শিল্পকর্ম।