Dockerless provider is useful for situations where you don't have Docker or Podman installed, you're on Linux, and you still want to use Devcontainers.
Dockerless provider will use RootlessKit for
rootless containers (and unshare in case you're already root) to create namespaces.
It will use Crane to pull and manage images.
All dependencies are self-contained in the provider binary.
The target is to have simple, reasonably isolated and easy to use container alternatives, without external runtimes.
Useful use-cases are easy nested containers or slim, no-deps images.
The provider is available for auto-installation using:
devsy provider add dockerless
devsy provider use dockerlessFollow the on-screen instructions to complete the setup.
Needed variables will be:
TARGET_DIR
TARGET_DIR is where all the images, containers and state are stored.
You only need to specify where you want all of the dockerless data to be stored.
After the initial setup, just use:
devsy workspace up .To run in a container, we need CAP_SYS_ADMIN (needed for the unshare, mount and pivot_root syscalls).
To have custom networking we also need access to /dev/net/tun.
We DO NOT require root. A nice way to run it is:
docker run --rm -ti --cap-add CAP_SYS_ADMIN --device /dev/net/tun --user 1000:1000 build-alpine:latestUsing the image in the image folder.