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
devpod provider add dockerless
devpod provider use dockerless
Follow 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 will be stored.
After the initial setup, just use:
devpod 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:latest
Using the image in the image
folder.