Docker


আমাদের টেস্ট রানারগুলো Docker ইমেজ হিসেবে ডিপ্লয় করা হয়।

এগুলো কীভাবে কাজ করে তা জানতে অনুগ্রহ করে সাধারণ টুলিং Docker তথ্য পড়ুন।

ইন্টিগ্রেশন

কোনো সমাধান পরীক্ষা করতে আমরা যখন একটি টেস্ট রানার রান করি, তখন আমরা নিচের মতো একটি Docker কমান্ড রান করি:

docker run \
        --rm \
        --network none \
        --mount type=bind,src="${solution_dir}",dst=/solution \
        --mount type=bind,src="${output_dir}",dst=/output \
        --tmpfs /tmp:rw \
        "exercism/${track_slug}-test-runner" \
        "${exercise_slug}" "/solution" "/output"

আপনি দেখতে পাচ্ছেন যে আমরা Docker ইমেজে তিনটি আর্গুমেন্ট পাঠাই:

  1. অনুশীলনীর স্লাগ
  2. সমাধানের ডিরেক্টরির পাথ
  3. আউটপুট ডিরেক্টরির পাথ

কনভেনশন

আমাদের সব টেস্ট রানার তাদের ইমপ্লিমেন্টেশনে নিচের কনভেনশনগুলো ব্যবহার করে:

  • Dockerfile রেপোর রুট ডিরেক্টরিতে থাকে।
  • ওয়ার্কিং ডিরেক্টরি /opt/test-runner হওয়া উচিত।
  • এন্ট্রিপয়েন্ট হলো /opt/test-runner/bin/run.sh
  • /opt/test-runner/bin/run.sh স্ক্রিপ্টটি ৩টি আর্গুমেন্ট নেয়:
    1. অনুশীলনীর স্লাগ
    2. সমাধানের ডিরেক্টরির পাথ
    3. আউটপুট ডিরেক্টরির পাথ

আরও তথ্যের জন্য ইন্টারফেস দেখুন।

Note

নতুন টেস্ট রানার রেপোগুলো ডিফল্টভাবে এই কনভেনশনগুলো ব্যবহার করবে।