When you first create a test environment, you will be shown two options:
Build from codePost defaults: These are performance-optimized container images that we've created for common languages. Currently Python (2.7 or 3.7), Java, and C/C++ are supported. If you need additional packages, we provide the option to install additional packages using the default package manager (pip for python, apk for java and c/c++). By default, all language containers also include make, bash, and python3. So if you want to write tests in Python for student code written in Java, you can!
Build a custom image: If your course uses a language outside of the ones we have default images for, you can build a custom image. You have the option of creating your own Dockerfile, starting from an Ubuntu or Alpine-Linux image.
How do I build my custom image?
If you need any help with building your custom image, contact the codePost team! We have a library of performance-optimized language images that we can share with you. If we don't have one for your language, we'll work with you to help make one for your course!
When you build your own docker image, you'll have to first choose a linux container to build from - alpine-linux or Ubuntu. Alpine-linux will have better performance, whereas a Ubuntu base image might have most support. You'll then need to specify what dependencies to install in the image, in order to run your language. After that, you'll be ready to start running some tests!