Our Analyzers are deployed as Docker images.
Please read the general Tooling docker information to familiarize yourself with how these work.
When we run an Analyzer to analyze a solution, we run a Docker command that looks like this:
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"
You can see that we pass three arguments to the Docker image:
All our Analyzers use the following conventions in their implementation:
Dockerfile
is in the repo's root directory./opt/analyzer
./opt/analyzer/bin/run.sh
/opt/analyzer/bin/run.sh
script takes 3 arguments:
For more information see The Interface.
New analyzer repos will use these conventions by default.