Docker


Nuestros Representers se despliegan como imágenes de Docker.

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

Integración

Cuando ejecutamos un Representer para crear la representación de 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}-representer" \
        "${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 Representers siguen estas convenciones en su implementación:

  • El Dockerfile está en el directorio raíz del repositorio.
  • El directorio de trabajo debe ser /opt/representer.
  • El entrypoint es /opt/representer/bin/run.sh
  • El script /opt/representer/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 representers usarán estas convenciones de forma predeterminada.