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}-analyzer" \
        "${exercise_slug}" "/solution" "/output"

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

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

কনভেনশন

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

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

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

Note

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