Environments
The Dockerfiles of the environments can be found in the environments
directory.
Build
The Docker image for the environment in <directory> can be built with
the environments/build.sh script:
./build.sh <directory>
The image is then available under eva/environments/<directory>:latest.
Publishing
If the image is to be used in production with a docker image registry, the image must be uploaded to
the registry using the demo/publish.sh script. For a docker image registry that is available at
docker.eva.local, use:
./publish.sh docker.eva.local <directory>
Depending on the cache configuration of the registry in Eva, it may take some time for the published environment to become visible when querying the available evaluation stacks.
Notes on Maintainability
Scripts and other files used across multiple environments should be organized under
environments/shared in the repository. Files specific to an environment should be maintained
directly in the environment's directory. Additional guidelines on maintenance can be found in the
checklist printed by the build.sh script.
Notes on Security
Given that user-submitted code is blindly executed inside Docker containers, the host system should not use permissive Seccomp security profiles. Restrictive Seccomp profiles help reduce the impact of potentially malicious or unintended behavior in the executed code.