Docker


Os nossos Test Runners são publicados como imagens Docker.

Lê a informação geral sobre Docker do Tooling para te familiarizares com o seu funcionamento.

Integração

Quando executamos um Test Runner para testar uma solução, corremos um comando Docker com este aspeto:

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 podes ver, passamos três argumentos à imagem Docker:

  1. O slug do exercício
  2. O caminho para o diretório da solução
  3. O caminho para o diretório de saída

Convenções

Todos os nossos test runners seguem as seguintes convenções na sua implementação:

  • O Dockerfile está no diretório raiz do repositório.
  • O diretório de trabalho deve ser /opt/test-runner.
  • O entrypoint é /opt/test-runner/bin/run.sh
  • O script /opt/test-runner/bin/run.sh recebe 3 argumentos:
    1. O slug do exercício
    2. O caminho para o diretório da solução
    3. O caminho para o diretório de saída

Para mais informações, consulta A Interface.

Note

Os novos repositórios de test runners usam estas convenções por predefinição.