Package: dockapt
# DockAPT
###### A magical fusion of Docker and APT [for Humans™](https://www.kennethreitz.org/projects)
__DockAPT__ brings together the power of Docker and APT into a single toolchain giving the best of both worlds!## Why
_TLDR; I was tired of breaking my linux everyday._APT is intrinsically designed to break your system.Docker solves 1.But, docker is designed for hackers, not the end user.UNIX was built on the [philosophy](https://en.wikipedia.org/wiki/Unix_philosophy) of modular software development.Now, it’s time for modular & _isolated_ software development## Install
Make sure you have python3.6 on your system, or install it using [pyenv](https://github.com/pyenv/pyenv-installer)$ pip3 install dockapt$ dockapt install self#TODOchecks if docker is installedcreates the~/.dockaptdirectorygit clone[this](https://github.com/jessfraz/dockerfiles) for a (fairly large) collection ofDockerfilesadds an alias file to your your~/.bashrc/~/.zshrc## How-TO
If you know APT, you know dockapt, mostly.✨$ dockapt search foobar$ dockapt install foobar$ dockapt run foobar#TODO$ dockapt uninstall foobar#TODO✨$ dockapt list$ dockapt update$ dockapt upgrade#TODO✨$ dockapt-repo add https://github.com/foo/bar.git$ dockapt-repo remove https://github.com/foo/bar.git$ dockapt-repo list## Core ideology
While not completely worked out, it’s still a good idea to write down how stuff should ideally work.Use existing technologies instead of creating new ones.dockapt doesnt keep a database. It works mostly with the filesystem.dockapt uses aDockerfile’sLABEL`(s), instead of its own `revolutionaryfileMinimize developer effort in making projects “dockapt-compatible”write out how to run your application and what it depends on, directly in yourDockerfileAvoid dependency hell as much as possibleInstall dependencies separately for each package, as opposed to the usual one-pacakge-for-all-depends strategy.Only change the existing API if it’s too botched up.You might have noticed how dockapt keeps all the commands fromaptbut changes the API foradd-apt-repository.## How#### search
- recursively searches~/.dockapt/repositories/for allDockerfile`(s)
- establishes the name of directory containing the `Dockerfileas the package’s name
- uses fuzzy matching for package names if required#### install
- builds the package’sDockerfilewhen you rundockapt install- builds theDockerfileof all dependencies #TODO
- stores a file containing the docker image’s hash and other meta-data #TODO#### DockerfilesDockerfilescontainLABEL`(s) that help dockapt figure out what to do with that `Dockerfile, like
- figuring out the dependencies
- how to actually run that image once its built
- docker registry image url that it can pull from, to save time building the image## Local Development` git clonehttps://github.com/pycampers/dockapt.gitcd dockapt pipenv install `pipenv shell` pip install--editable. dockapt--help`## Screenshots and general updatesI’ve taken [this](https://github.com/devxpy/dockerfiles/blob/302decc29dc323d84f39b182aca6b8e62792fcc8/couchpotato/Dockerfile) as sort of a first try on making a working package.#### Its a WIP, but this is what it can do as of now.
![dockapt-repo add](https://i.imgur.com/LNWtF2A.png)![dockapt-repo list](https://i.imgur.com/R9mWc1W.png)![dockapt install](https://i.imgur.com/xlr8ji9.png)![dockapt install](https://i.imgur.com/flFydBi.png)