Command line tool for transparently running shell commands using docker containers.
- Automatic volumes detection - scans arguments passed to the invoked commands looking for paths and mounts them. If given path is nonexistent but has an existing ancestor, this ancestor is mounted instead. This allows handling files created by the wrapped command.
- Mapping uid and guid into docker containers
Suppose you want to use mkdir
command from Alpine linux:
- Create wrapper script
jonasadm -i alpine -c mkdir > mkdir
chmod u+x mkdir
- Run the script with arguments needed by mkdir:
./mkdir -p ./mydir/subdir
jonas
will detect that ./mydir/subdir
is a nonexistent directoy with existing ancestor .
.
Thus an alpine linux container will be created with current directory (.
) mounted in
and command mkdir -p ./mydir/subdir
will be run inside.
For full list of possible options see jonasadm -h
.
Clonse the repository and place files jonas
and jonasadm
in your PATH
referencing jonas.py
and jonasadm.py
respectively.
The Makefile contains helper script placing correct links in /usr/bin/
:
sudo make install
Reference to biblical Jonas swallowed by a whale.
MIT License, see the LICENSE file.