AI Workbench Projects#
Overview#
- A project is a Git repository under management by AI Workbench.
Workbench uses configuration files to specify the container build and runtime. The configuration files are versioned in the repository, and Workbench both reads and writes to them.
If the files are missing, AI Workbench will add default configuration files when you clone a repository. You can edit the files directly and with the Desktop App or CLI features.
- The project defines what runs and how AI Workbench presents and manages it.
The project view in the Workbench UI is shaped on a project-by-project basis. The configuration files also define the repository UX by customizing project related affordances in the UI.
For example, configuring an application puts the application name in the Application Launch buttons for that project.
- Your code lives on the host and is mounted into the container.
Git manages the repository on the host and AI Workbench mounts the repository into the container. This gives you the option to edit the files with tools on the host or tools installed in the container.
Key Concepts#
- Project Specification
The core configuration file located at
.project/spec.yamlin the repository that AI Workbench uses to manage things. It defines things like the base image, mounts, environment variables, and applications.- Build Files
Optional files that customize the container during build by relying on package managers in the container such as
aptandpip. Includes scripts that are imported into the containerfile to execute user customized instructions.- Base Image
The container image that the project container is built on from the build files and any environment modifications you make over time.
You must select a base image when creating a new project or cloning in a new Git repository for the first time.
NVIDIA-provided default environments come pre-configured with common software stacks like Python, CUDA, PyTorch, or TensorFlow. You can also use your own base images.
- Project Container
The containerized environment that’s built on the base image. It’s what you run when launching applications and it’s the environment in which you do your work.
The project directory itself is mounted into the container, so changes to your code persist after the container stops.
- Compose Stack
A multi-container application defined through a compose file in the repository.
It has a compose file that is at the top of the project repository or at a path specified in the
spec.yamlfile.- Mounts
Bind and volume mounts that connect the container file system to that of the host.
Bind mounts, called “host mounts”, connect the container file system directly to the host file system with access from both sides.
Volume mounts create dedicated and isolated storage on the host that is also in the container file system. You cannot get into the volume mount from the host side.