Allow OCI launcher to run image that is in on-disk OCI bundle format.
Extend the OCI launcher so that it can run an OCI bundle that is on-disk in a specified location. I.E.
singularity run oci-bundle:ubuntu-bundle
Should work roughly the same as...
singularity oci run -b ubuntu-bundle mycontainer
This will require:
- Adding an
oci-bundleimage type, that is recognized and supported for execution by the OCI CLI / launcher flow only. - Having the OCI launcher create a default config in the bundle (overwriting any existing config is ok at this stage.
- Having the OCI launcher run the container interactively, similar to the existing OCI command group code, which may be refactored to support this from a more generic location in the codebase:
https://github.com/sylabs/singularity/blob/21c48367a9f5956765ad1c16ee88f9a12441beef/internal/app/singularity/oci_run_linux.go#L20
The launcher does not need to handle any options, environment, etc. at this stage. Just run the container, entering it with a default minimal OCI runtime config.
The target UID in the container must be the host user, as with singularity. For unprivileged users, this means a rootless configuration, uid / gid mappings, and setting a User in the spec.
The container image should be read only, as is Singularity's default. No writable overlay, tempfs support is required at this stage.