Docker


Οι Test Runners μας γίνονται deploy ως Docker images.

Διάβασε τις γενικές πληροφορίες για το Docker στο Tooling για να εξοικειωθείς με το πώς λειτουργούν.

Ενσωμάτωση

Όταν τρέχουμε έναν Test Runner για να δοκιμάσουμε μια λύση, εκτελούμε μια εντολή 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}-test-runner" \
        "${exercise_slug}" "/solution" "/output"

Όπως βλέπεις, περνάμε τρία ορίσματα στο Docker image:

  1. Το slug της άσκησης
  2. Η διαδρομή προς τον κατάλογο της λύσης
  3. Η διαδρομή προς τον κατάλογο εξόδου

Συμβάσεις

Όλοι οι test runners μας χρησιμοποιούν τις παρακάτω συμβάσεις στην υλοποίησή τους:

  • Το Dockerfile βρίσκεται στον ριζικό κατάλογο του repo.
  • Ο κατάλογος εργασίας θα πρέπει να είναι /opt/test-runner.
  • Το entrypoint είναι /opt/test-runner/bin/run.sh.
  • Το script /opt/test-runner/bin/run.sh δέχεται 3 ορίσματα:
    1. Το slug της άσκησης
    2. Η διαδρομή προς τον κατάλογο της λύσης
    3. Η διαδρομή προς τον κατάλογο εξόδου

Για περισσότερες πληροφορίες, δες τη Διεπαφή.

Note

Τα νέα repos με test runners θα χρησιμοποιούν αυτές τις συμβάσεις από προεπιλογή.