Docker


Analyzerهای ما به صورت ایمیج‌های Docker مستقر می‌شوند.

لطفاً برای آشنایی با نحوه‌ی کار آن‌ها، اطلاعات عمومی Docker در بخش Tooling را بخوانید.

یکپارچه‌سازی

وقتی یک Analyzer را برای تحلیل یک راه‌حل اجرا می‌کنیم، فرمانی 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. مسیر پوشه‌ی خروجی

قراردادها

همه‌ی Analyzerهای ما در پیاده‌سازی خود از این قراردادها استفاده می‌کنند:

  • فایل Dockerfile در پوشه‌ی ریشه‌ی مخزن قرار دارد.
  • پوشه‌ی کاری باید /opt/analyzer باشد.
  • نقطه‌ی ورود /opt/analyzer/bin/run.sh است
  • اسکریپت /opt/analyzer/bin/run.sh سه آرگومان می‌گیرد:
    1. اسلاگ تمرین
    2. مسیر پوشه‌ی راه‌حل
    3. مسیر پوشه‌ی خروجی

برای اطلاعات بیشتر، رابط را ببینید.

Note

مخزن‌های جدید Analyzer به صورت پیش‌فرض از این قراردادها استفاده می‌کنند.