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. slug вправи
  2. шлях до каталогу рішення
  3. шлях до каталогу вихідних даних

Угоди

Усі наші аналізатори дотримуються таких угод у своїй реалізації:

  • Dockerfile лежить у кореневому каталозі репозиторію.
  • Робочий каталог має бути /opt/analyzer.
  • Точка входу - /opt/analyzer/bin/run.sh
  • Скрипт /opt/analyzer/bin/run.sh приймає 3 аргументи:
    1. slug вправи
    2. шлях до каталогу рішення
    3. шлях до каталогу вихідних даних

Докладніше див. Інтерфейс.

Note

Нові репозиторії аналізаторів типово будуть використовувати ці угоди.