Docker


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

এগুলো কীভাবে কাজ করে তা জানতে অনুগ্রহ করে Tooling-এর সাধারণ 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}-representer" \
        "${exercise_slug}" "/solution" "/output"

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

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

কনভেনশন

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

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

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

Note

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