A magical fusion of Docker and APT for Humans™
Project description
# 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 #TODO
checks if docker is installed
creates the ~/.dockapt directory
git clone [this](https://github.com/jessfraz/dockerfiles) for a (fairly large) collection of Dockerfiles
adds 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 a Dockerfile’s LABEL`(s), instead of its own `revolutionary file
- Minimize developer effort in making projects “dockapt-compatible”
write out how to run your application and what it depends on, directly in your Dockerfile
- Avoid dependency hell as much as possible
Install 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 from apt but changes the API for add-apt-repository.
## How
#### search - recursively searches ~/.dockapt/repositories/ for all Dockerfile`(s) - establishes the name of directory containing the `Dockerfile as the package’s name - uses fuzzy matching for package names if required
#### install - builds the package’s Dockerfile when you run dockapt install - builds the Dockerfile of all dependencies #TODO - stores a file containing the docker image’s hash and other meta-data #TODO
#### Dockerfiles Dockerfiles contain LABEL`(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 clone https://github.com/pycampers/dockapt.git cd dockapt pipenv install `
pipenv shell
` pip install --editable . dockapt --help `
## Screenshots and general updates
I’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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file dockapt-0.1.tar.gz
.
File metadata
- Download URL: dockapt-0.1.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29cd56ca957bb29688cddd307b9914c55affb24fccf21a2e7b9e6465a82ebb54 |
|
MD5 | 23fe6143046c0c4b30d292997c259363 |
|
BLAKE2b-256 | 9455e7abda35cbe3d2cbad3cc9ecf6fc2af984ca77446ae33722e75467829445 |
File details
Details for the file dockapt-0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: dockapt-0.1-py2.py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b1cf11ae714b785ac6584706aab25e3947a335afcdcb7a822af804d23fe8272 |
|
MD5 | 07a446e02bacd0221658bd3c343947fb |
|
BLAKE2b-256 | 7192aaf9bd87d908fc2961822a87dc34dbe241a36fc80441ca641229009b04e8 |