Docker


Nuestros test runners se despliegan como imágenes de Docker.

Lee la información general sobre Docker de las herramientas para familiarizarte con su funcionamiento.

Integración

Cuando ejecutamos un test runner para probar una solución, ejecutamos un comando de Docker como 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, le 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 runners usarán estas convenciones de forma predeterminada.