Docker


Nuestros Analyzers se despliegan como imágenes de Docker.

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

Integración

Cuando lanzamos un Analyzer para analizar una solución, ejecutamos un comando de Docker como el siguiente:

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}-analyzer" \
        "${exercise_slug}" "/solution" "/output"

Como puedes ver, 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 Analyzers usan las siguientes convenciones en su implementación:

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

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

Note

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