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:
- The exercise slug
- The path to the solution's directory
- The path to the output directory
All our Representers use the following conventions in their implementation:
- The
Dockerfile
is in the repo's root directory. - The working directory should be
/opt/representer
. - The entrypoint is
/opt/representer/bin/run.sh
- The
/opt/representer/bin/run.sh
script takes 3 arguments:- The exercise slug
- The path to the solution's directory
- The path to the output directory
For more information see The Interface.
New representer repos will use these conventions by default.