Docker


Nuestros analizadores se despliegan como imágenes de Docker.

Lee la información general sobre Docker en Tooling para familiarizarte con cómo funcionan.

Integración

Cuando ejecutamos un analizador 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, le pasamos tres argumentos a la imagen de Docker:

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

Convenciones

Todos nuestros analizadores 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 toma 3 argumentos:
    1. El slug del ejercicio
    2. La ruta del directorio de la solución
    3. La ruta del directorio de salida

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

Note

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