Docker


Nuestros Test Runners se despliegan como imágenes de Docker.

Lee la información general sobre Docker en Tooling para familiarizarte con su funcionamiento.

Integración

Cuando ejecutamos un Test Runner para probar una solución, ejecutamos un comando de Docker similar a este:

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"

Como ves, pasamos tres argumentos a la imagen de Docker:

  1. El slug del ejercicio
  2. La ruta al directorio de la solución
  3. La ruta al directorio de salida

Convenciones

Todos nuestros Test Runners siguen estas convenciones en su implementación:

  • El Dockerfile está en el directorio raíz del repositorio.
  • El directorio de trabajo debe ser /opt/test-runner.
  • El punto de entrada es /opt/test-runner/bin/run.sh
  • El script /opt/test-runner/bin/run.sh recibe 3 argumentos:
    1. El slug del ejercicio
    2. La ruta al directorio de la solución
    3. La ruta al directorio de salida

Para más información, consulta La interfaz.

Note

Los repositorios nuevos de Test Runner usarán estas convenciones de forma predeterminada.