Abstract
Move the suite away from the current methodology of using scripting files to handle dependencies, installation into the $IROOT directory for sandboxing, and instead use Docker CE.
Reasoning
- Installing software to
$IROOT is hard (much harder than apt-get) and prone to difficult-to-identify errors
- Many dependencies use
apt-get already for various reasons, and migrating away from globally installed software is hard (much harder than allowing apt-get)
- Docker provides a much cleaner reusable sandbox environment that has been fire-tested much more-so than our in-house implementation
- In testing, Docker does not appear to incur much (if any) performance penalty
Ongoing work is in this branch.
Action Items (in no particular order)
Abstract
Move the suite away from the current methodology of using scripting files to handle dependencies, installation into the
$IROOTdirectory for sandboxing, and instead use Docker CE.Reasoning
$IROOTis hard (much harder thanapt-get) and prone to difficult-to-identify errorsapt-getalready for various reasons, and migrating away from globally installed software is hard (much harder than allowingapt-get)Ongoing work is in this branch.
Action Items (in no particular order)
tfbdockerfile with as minimal software installed as possibleTFBReapearso that everything is run through himgeminiand the dockerfile(s) required to build and run in console modegeminiand perform a verificationgeminiimage after we have run thegeminitest)docker/languages,docker/frameworks, etc)benchmark_config.jsonto specify a dockerfile instead of asetup.shfw_depends(which is being deprecated and removed with the docker work)fw_depends(installingwrkon the remote client, etc)tfb --init --quietto initialize the software on the database and client machine (localhost)framework_test.pyfor an example of this; this is needed to see output in Travis-CI, for example)docker build...cannot find the file referenced inFROM somethingin a dockerfile)docker build...fails for some reason)docker run...fails for some reason)prerequisites.shsince it will no longer require most of the packages listed (they will move to the various dockerfiles)prerequisites.shto install Rust and build TFBReaperprerequisites.shto install Docker CEscaffoldingto reflect the docker implementation (instructions, default files, etc)ulimiton containers (see this)--clean-allimplementation to delete all docker images