Skip to main content

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._

  1. APT is intrinsically designed to break your system.

  2. Docker solves 1.

  3. 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

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dockapt-0.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

dockapt-0.1-py2.py3-none-any.whl (6.0 kB view details)

Uploaded Python 2 Python 3

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

Hashes for dockapt-0.1.tar.gz
Algorithm Hash digest
SHA256 29cd56ca957bb29688cddd307b9914c55affb24fccf21a2e7b9e6465a82ebb54
MD5 23fe6143046c0c4b30d292997c259363
BLAKE2b-256 9455e7abda35cbe3d2cbad3cc9ecf6fc2af984ca77446ae33722e75467829445

See more details on using hashes here.

File details

Details for the file dockapt-0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for dockapt-0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6b1cf11ae714b785ac6584706aab25e3947a335afcdcb7a822af804d23fe8272
MD5 07a446e02bacd0221658bd3c343947fb
BLAKE2b-256 7192aaf9bd87d908fc2961822a87dc34dbe241a36fc80441ca641229009b04e8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page