The only case where it's fine to overwrite existing Python packages with
pip versions is when Platypush is running in a virtual environment.
Otherwise, keep the system-installed version if it's available, unless
its version is explicitly incompatible with the one reported in
`requirements.txt`.
- Reduced size of the Ubuntu image by removing some unneeded packages
(docutils, manpages, babel, fonts, python-pil etc.) that take a lot of
space.
- Better self-documented docker-compose.yml.
- Added reference to the registry.platypush.tech/platypush image in
docker-compose.yml (README reference will follow).
- Fixed grep condition in the Docker prepare script.
- Pass `--no-deps` to `pip install platypush`. The dependencies of the
application, now that `marshmallow_dataclasses` has been removed, are
all available in the package managers of the supported images (with
the exception for croniter in Alpine Linux for now), so they can all
be installed via system package manager rather than pip. This also
prevents Ubuntu builds from breaking because system-installed packages
are being overwritten with pip-installed copies.
If the Platypush setup.py is found in the current directory, then use
that directory as the base for the new image.
Otherwise, clone the repo on the fly and build the image from there.
All the latest versions of Alpine, Debian, Ubuntu and Fedora now require
`--break-system-packages` when installing packages via `pip` outside of
a virtual environment, even if it's within a container.