Skip to content

Manager for Development Containers with podman

License

Notifications You must be signed in to change notification settings

rumpelsepp/devman

Repository files navigation

devman

A tool for development using podman. Create simple development containers with easy access to the host filesystem using a correct user id mapping. Features such as sharing SSH config (e.g. SSH agent) or starting GUI applications from the container are supported.

Install

On the system level, the podman and the catatonit tools are required. They are available and packaged for a large number of systems. Please refer to the official manual containing install instructions.

On Debian, this bails down to:

$ sudo apt install podman catatonit

pipx

$ pipx install devman

uv

devman can be run without installation using the uv tool:

$ uvx devman

Quickstart

Ready to use containers with a lot of pre-installed development tools are provided by the Github container registry associated with this repo.

Pull the default Debian container (the Containerfile is located in this repository in containers/debian/):

$ devman pull

Start a fish shell in a container:

$ devman run fish

The current directory DIR from the host is mounted in the container at /home/dev/CWD/DIR. The user dev corresponds to the user that invoked devman.

If you would like to share your SSH config with the container, add --ssh. If you want to be able to start GUI applications from the container, add --gui.

podman Performance

For performance reason you could consider using native overlay mounts. Make sure that the following is included in your storage configuration.

$ cat ~/.config/containers/storage.conf
[storage]
driver = "overlay"