Hi all,
I've been discussing this with Dave for about a month now. Today I
finally present a proposed patch to update pgadmin4's Docker
packaging.
Key features of this update:
- Main image is based on python:3.6-alpine3.7.
Using Alpine linux leads to much smaller image
- All build is done with Docker multi-stage build. First of all build
the frontend in node:6 image,
then build Sphinx documentation in separate Python container and in
the end just install all
dependencies in a clean python:3.6-alpine3.7 image, so that it does
not have any leftovers from the build
process and we don't rely on any tools available on the host.
- Use Gunicorn (http://gunicorn.org) as lightweight HTTP / WSGI server.
Gunicorn supports both HTTP and HTTPS.
- Install Alpine postgresql-client package, which includes pg_dump and
other tools and config
PgAdmin to find these tools by default
- Byte-compile all PgAdmin Python code in Dockerfile with optimization
(-O) enabled. This way Python
does not have to compile modules on each container restart and
consume space in overlay fs
Please find attached patch from "git format-patch".