https://github.com/rumpelsepp/devman
Manager for Development Containers with podman
https://github.com/rumpelsepp/devman
container developer-tools podman
Last synced: 4 months ago
JSON representation
Manager for Development Containers with podman
- Host: GitHub
- URL: https://github.com/rumpelsepp/devman
- Owner: rumpelsepp
- License: mit
- Created: 2024-10-29T12:19:47.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-05-01T18:15:56.000Z (about 1 year ago)
- Last Synced: 2025-06-17T00:05:22.256Z (about 1 year ago)
- Topics: container, developer-tools, podman
- Language: Python
- Homepage:
- Size: 79.1 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# devman
A tool for **dev**elopment using pod**man**.
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`](https://podman.io/) and the [`catatonit`](https://github.com/openSUSE/catatonit) tools are required.
They are available and packaged for a large number of systems.
Please refer to the official manual containing [install instructions](https://podman.io/docs/installation).
On Debian, this leads to:
```
$ sudo apt install podman catatonit
```
### pipx
```
$ pipx install devman
```
### uv
`devman` can be run without installation using the [uv](https://github.com/astral-sh/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"
```