Our Representers are deployed as Docker images.
Please read the general Tooling docker information to familiarize yourself with how these work.
When we run a Representer to create a solution representation, 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}-representer" \
"${exercise_slug}" "/solution" "/output"
You can see that we pass three arguments to the Docker image:
All our Representers use the following conventions in their implementation:
Dockerfile
is in the repo's root directory./opt/representer
./opt/representer/bin/run.sh
/opt/representer/bin/run.sh
script takes 3 arguments:
For more information see The Interface.
New representer repos will use these conventions by default.