Executors have two basic responsibilities:
- Execute a process
- in a hermetic environment.
Typically, we use an executor which uses “linux containers”. However, for the most part, we try to consider that an implementation detail. Executors might also be simple chroots; or virtual machines; or other interesting kinds of sandboxing. Nor are executors strictly limited to the Linux operating system; it's simply the most common place to work.
Different executors can be selected using the
--executor flag when running
This page may be interesting if you want to know more about how Repeatr isolates computation, or if you're interested in implementing more executors.
All of the executor implementations are each in a package within the https://github.com/polydawn/repeatr/tree/master/executor/impl directory.
The following executors are currently supported:
Each of these implementations is tested against a shared set of behavioral specifications: https://github.com/polydawn/repeatr/tree/master/executor/tests