Docker


Nos representers 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 representer pour créer une représentation de 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}-representer" \
        "${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 dossier de la solution
  3. Le chemin du dossier de sortie

Conventions

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

Pour plus d'informations, consulte L'interface.

Note

Les nouveaux dépôts de representer utiliseront ces conventions par défaut.