This repository contains the source files for supported base images. These images all work with the Autograder Sandbox library and can be inherited from to create new images.
Contributions to this repository are welcome in the form of pull requests. Each base image should be placed in a separate directory in the top-level directory of this repo. Those image-specific directories should contain a file named Dockerfile
and any other files needed to build the image. For a base image to be valid, it must meet the following requirements:
- A user named
autograder
must exist - A directory of
/home/autograder/working_dir
must be set as the image'sWORKDIR
and must be owned by the autograder user. - The image must enter via user
root
. - Python 3.5 or greater must be installed and available on the system PATH.
The following Dockerfile
snippet accomplishes this for Ubuntu 16, 18, and 20:
RUN apt-get update --fix-missing && apt-get install -y python3
RUN mkdir -p /home/autograder/working_dir
RUN useradd autograder && \
mkdir -p /home/autograder/working_dir && \
chown -R autograder:autograder /home/autograder
WORKDIR /home/autograder/working_dir
# Ubuntu 20 has a different default CMD directive, so we
# need to specify this explicity.
CMD ["/bin/bash"]
# Make sure that this is the last USER directive in your Dockerfile
USER root
This section lists the tags for each supported base image.
eecsautograder/ubuntu16:latest
: Based on Ubuntu 16 (Xenial)
eecsautograder/ubuntu18:latest
: Based on Ubuntu 18 (Bionic)
eecsautograder/ubuntu20:latest
: Based on Ubuntu 20 (Focal)
eecsautograder/ubuntu22:latest
: Based on Ubuntu 22 (Jammy)
eecsautograder/ubuntu24:latest
: Based on Ubuntu 24 (Noble)