Docker


Unsere Representer werden als Docker-Images ausgerollt.

Lies bitte die allgemeinen Docker-Informationen zum Tooling, um dich damit vertraut zu machen, wie diese funktionieren.

Integration

Wenn wir einen Representer ausführen, um eine Repräsentation einer Lösung zu erstellen, führen wir einen Docker-Befehl aus, der so aussieht:

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"

Wie du siehst, übergeben wir drei Argumente an das Docker-Image:

  1. Den Übungs-Slug
  2. Den Pfad zum Verzeichnis der Lösung
  3. Den Pfad zum Ausgabeverzeichnis

Konventionen

Alle unsere Representer verwenden in ihrer Umsetzung die folgenden Konventionen:

  • Das Dockerfile liegt im Wurzelverzeichnis des Repos.
  • Das Arbeitsverzeichnis sollte /opt/representer sein.
  • Der Entrypoint ist /opt/representer/bin/run.sh
  • Das Skript /opt/representer/bin/run.sh nimmt 3 Argumente entgegen:
    1. Den Übungs-Slug
    2. Den Pfad zum Verzeichnis der Lösung
    3. Den Pfad zum Ausgabeverzeichnis

Weitere Informationen findest du unter Die Schnittstelle.

Note

Neue Representer-Repos verwenden diese Konventionen standardmäßig.