mottosso / bleeding-rez

Rez - Reproducible software environments for Windows, Linux and MacOS
GNU Lesser General Public License v3.0
72 stars 10 forks source link

Pucker #77

Open mottosso opened 5 years ago

mottosso commented 5 years ago

Goal

A pure-Python Docker equivalent.

Motivation

I found myself wanting to test a package in an isolated environment. To make sure it runs both here and elsewhere, but what are my options?

Thus, in order to be sure it'll run elsewhere, I need to either delete any trace of local configuration and packages, and clean my environment prior to actually running the thing. Typically, I'd leverage Docker or VMWare for this. Docker does a good job at providing the console experience of a new machine and VMWare does the same but with a graphical interface suitable for testing GUIs and graphical installation procedures.

But here I am, sitting with a system capable of isolating an environment down to (almost) the last detail, except you cannot quite use this system as a suitable replacement for Docker and VMWare. But what if you could?

Docker is able to encapsulate a series of software components into a container, and distribute this as a whole, including the OS and anything else related to the container.

However because it also encapsulates the operating system, distributing software that depend on the parent operating system is problematic, especially graphics-related software that need access to the NVIDIA/AMD drivers in order to leverage OpenGL/Vulkan or CUDA. Not to mention running any form of GUI from a container that isn't a web application or other kind of client/server rendered mechanism (like VcXsrv).

Implementation

Re-brand and restructure bleeding-rez into Pucker (working title) - a pure-Python Docker alternative.

What would it do different?

Alternative names that also reflect its use and purpose.