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

From Максим Кольцов
Subject Re: [pgAdmin4][Patch] Remake Docker container packaging
Date
Msg-id CAB_KkxwFVfgP22=SmN9uS2_LV+fUpByLAhBdh7yMv_SunmTe9g@mail.gmail.com
Whole thread Raw
In response to Re: [pgAdmin4][Patch] Remake Docker container packaging  (Максим Кольцов <kolmax94@gmail.com>)
Responses Re: [pgAdmin4][Patch] Remake Docker container packaging
List pgadmin-hackers
I've updated patch. Now I drop tests and regressions. 

And I added new env var: PGADMIN_LISTEN_PORT. Default value is 8080 for http and 8443 for https mode.

Please review.

2018-04-02 9:40 GMT+03:00 Максим Кольцов <kolmax94@gmail.com>:


пн, 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][RM#3235] Code refactoring in Query tool
Next
From: Dave Page
Date:
Subject: Re: pgAdmin4 - Issue of unmaintained libraries