Re: [pgAdmin4][Patch] Remake Docker container packaging - Mailing list pgadmin-hackers

From Максим Кольцов
Subject Re: [pgAdmin4][Patch] Remake Docker container packaging
Date
Msg-id CAB_KkxyyNaLGcibge_1x5XpM6MJ6aOkd=_jUK6wMaRH6kLscAw@mail.gmail.com
Whole thread Raw
In response to Re: [pgAdmin4][Patch] Remake Docker container packaging  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
Responses Re: [pgAdmin4][Patch] Remake Docker container packaging
List pgadmin-hackers


пн, 2 апр. 2018 г., 7:54 Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>:
Hello,

I tested the patch and it is working fine.

- I had clean system before but after running DockerBuild, I can see 3 different images of pgAdmin4, Is this expected?
Yes, this is expected and is the same for old docker image. Two unnamed images are temporary images from build process and can be safely removed, if you don't want cache for next builds. 


- We can remove /tests/ folder from each folders, we can also remove /web/regression/ folder from the container, they are used to run tests. 
We don't require them on production code. 
Sounds reasonable. In fact, I believe I did that when making a prototype, but forgot to replicate in this patch. Will do. 

- Can we make the ports configurable?
This is certainly doable. Please note, by the way, that pgadmin is now started on port 8080 or 8443 by default. 

- Allow user to choose whether to run it as Single user mode(SERVER_MODE = False) or Multiuser mode(SERVER_MODE = True) 


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Sat, Mar 31, 2018 at 11:19 PM, Максим Кольцов <kolmax94@gmail.com> wrote:
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".

Attachment

pgadmin-hackers by date:

Previous
From: Murtuza Zabuawala
Date:
Subject: Re: [pgAdmin4][Patch] Remake Docker container packaging
Next
From: Akshay Joshi
Date:
Subject: Regarding RM #2214 SCRAM Authentication for Change Password