এখনই আমাদের জেনকিনস এজেন্টরা আমাদের প্রতিটি রেল প্রকল্পের জন্য একটি ডকার-কমপোজ.আইএমএল তৈরি করে এবং তারপরে ডকার-কমপোজ চালায় run ডকার-কমপোজ.আইএমএল এর একটি প্রধান "ওয়েব" ধারক রয়েছে যার মধ্যে rbenv রয়েছে এবং আমাদের অন্যান্য সমস্ত রেলের উপর নির্ভরশীলতা রয়েছে। এটি এমন একটি ডিবি কন্টেইনারের সাথে লিঙ্কযুক্ত যাতে টেস্ট পোস্টগ্রিস ডিবি থাকে।
সমস্যাটি তখনই ঘটে যখন আমাদের প্রকৃতপক্ষে পরীক্ষা চালানো এবং প্রস্থান কোডগুলি তৈরি করা দরকার। আমাদের সিআই সার্ভার কেবলমাত্র পরীক্ষার স্ক্রিপ্ট 0 থেকে প্রস্থান করার সময় মোতায়েন করবে তবে কনটেইনার আদেশগুলির মধ্যে একটি ব্যর্থ হলেও ডকার-কমপোজ সর্বদা 0 প্রদান করে।
অন্যান্য সমস্যাটি হ'ল ডিবি কনটেইনার অনির্দিষ্টকালের জন্য চলবে, এমনকি ওয়েব কন্টেইনারগুলি পরীক্ষা চালানোর পরেও docker-compose up
কখনই ফিরে আসে না।
এই প্রক্রিয়াটির জন্য আমরা কীভাবে কোনও ডকার-রচনা ব্যবহার করতে পারি? আমাদের পাত্রে চালাতে সক্ষম হতে হবে তবে ওয়েব ধারকটি সম্পূর্ণ হয়ে গেলে প্রস্থান করুন এবং এর প্রস্থান কোডটি ফিরিয়ে দিন। এই মুহুর্তে আমরা ডিবি ধারককে স্পিন করতে এবং --link বিকল্পের সাহায্যে ওয়েব ধারকটি চালানোর জন্য ডকার ব্যবহার করে ম্যানুয়ালি আটকে রয়েছি।
docker-compose
1.12.0 বা তার বেশি ব্যবহার করে থাকেন তবে এটি করার সঠিক উপায় হওয়া উচিত । সম্ভবত এটি আপনার ক্ষেত্রেও হয়। একটি উদাহরণ হতে পারে:docker-compose up --exit-code-from test-unit
। মনে রাখবেন যে আমিset -e
আমার স্ক্রিপ্টের শুরুতে একটি যোগ না করা পর্যন্ত এটি আমার পক্ষে কাজ করে না ।