Docker


Nos analyseurs sont déployés sous forme d'images Docker.

Lis la documentation générale sur Docker dans l'outillage pour te familiariser avec leur fonctionnement.

Intégration

Quand on lance un analyseur pour analyser une solution, on exécute une commande Docker qui ressemble à ceci :

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"

Comme tu peux le voir, on passe trois arguments à l'image Docker :

  1. Le slug de l'exercice
  2. Le chemin vers le répertoire de la solution
  3. Le chemin vers le répertoire de sortie

Conventions

Tous nos analyseurs suivent les conventions suivantes dans leur implémentation :

  • Le Dockerfile se trouve à la racine du dépôt.
  • Le répertoire de travail doit être /opt/analyzer.
  • Le point d'entrée est /opt/analyzer/bin/run.sh
  • Le script /opt/analyzer/bin/run.sh prend 3 arguments :
    1. Le slug de l'exercice
    2. Le chemin vers le répertoire de la solution
    3. Le chemin vers le répertoire de sortie

Pour plus d'informations, consulte L'interface.

Note

Les nouveaux dépôts d'analyseurs utiliseront ces conventions par défaut.