Docker


Nos exécuteurs de tests 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 exécuteur de tests pour tester 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}-test-runner" \
        "${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 du répertoire de la solution
  3. Le chemin du répertoire de sortie

Conventions

Tous nos exécuteurs de tests 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/test-runner.
  • Le point d'entrée est /opt/test-runner/bin/run.sh
  • Le script /opt/test-runner/bin/run.sh prend 3 arguments :
    1. Le slug de l'exercice
    2. Le chemin du répertoire de la solution
    3. Le chemin du répertoire de sortie

Pour plus d'informations, consulte L'interface.

Note

Les nouveaux dépôts d'exécuteurs de tests utiliseront ces conventions par défaut.