Note that this is a work in progress, please get in touch if you are interested.
Podenv provides a declarative interface to manage containerized application. Using rootless containers, podenv let you run applications seamlessly.
The main goal of podenv is to convert an application definition into a podman command.
At a high level, the scope of podenv is the following:
- Highlevel capability system to define generic container resources.
- Support desktop application with VPN network namespace.
- User friendly command line interface.
- Functional configuration.
Here are some demo use cases:
Run a container image: podenv --cwd --shell image:ubi8
… starts the following command: podman run -it --detach-keys '' --network none --rm --volume $(pwd):/data:Z --workdir /data ubi8 /bin/bash
Run a nix package: podenv nix:"(import <nixpkgs> {}).hello" hello
… instantiates the expression and runs the hello command in a container.
Run a podenv application: podenv gimp ./image.png
… builds a container and starts the following command: podman run [wayland args] --volume $(pwd)/image.png:/data/image.png gimp /data/image.png
Podenv documentation is organized into the following four sections:
These guides help you get your hands dirty with working examples:
These cookbooks teach you how to solve specific tasks:
These posts explain the context and motivation behind this tool:
These comprehensive resources cover details that other texts will gloss over: