Here are Docker images that can be used to quickly get up and running with the online code learning platform Exercism. Part of the experience of learning a new programming language is setting up the tooling and environment, but it's not always desirable to install a lot of software just to experiment with a new language. This project aims to use containerization to isolate the Exercism track environment from the rest of the host system. Not affiliated with Exercism, Inc.
Requires Docker.
Build the base Docker image:
make build_base_image
Build a track-specific image:
TRACK=<track-name> make build_track_image
E.g.:
make build_base_image && TRACK=python make build_track_image
Run a track's container (requires an exercism.org CLI token):
TOKEN=<my-exercism-token> \
TRACK=<track-name> \
make run_track
Running the above command will drop you into a bash prompt on the running container. Exercism track code is saved in the /workspace
directory on the container, which is mounted from ./workspace
on the host machine in the root directory of this project. On the container, you can use the exercism
CLI tool to download exercises, e.g.:
root@68483403b74e:/workspace/python# exercism download --exercise=hello-world --track=python
The TRACK
environment variable for the above usage commands is cpp
, e.g.
TOKEN=<my-exercism-token> TRACK=cpp make run_track
Local port 4000 will be bound to the nrepl port on the container, but this can be overridden with an env var, e.g.:
LEIN_REPL_PORT=4444 \
TOKEN=<my-exercism-token> \
TRACK=clojure \
make run_track