Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eq0aN-0003Ez-7A for pgadmin-hackers@arkaria.postgresql.org; Sun, 25 Feb 2018 17:59:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eq0aM-0008Rh-88 for pgadmin-hackers@arkaria.postgresql.org; Sun, 25 Feb 2018 17:59:42 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1eq0aL-0008RX-SR for pgadmin-hackers@lists.postgresql.org; Sun, 25 Feb 2018 17:59:42 +0000 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eq0aH-0007P9-Q8 for pgadmin-hackers@lists.postgresql.org; Sun, 25 Feb 2018 17:59:40 +0000 Received: by mail-wr0-x242.google.com with SMTP id l43so18935391wrc.2 for ; Sun, 25 Feb 2018 09:59:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=kI34S7VeumOJefjDZ4Ybc2SrhtuqeA/BRyIbUDvdjr4=; b=KiVzJa/Q/k2DxvOleHF1V51vzaVuoPDPMUcYJdVKeSqZz6h2hAVFPV9V3Adir5x1qb NxxXbbUOsLdm/BcJamZWFmlOV+z/8FDxxk3lYwlvUxmw+gTzKAG965BHL6MlbDUNuR3x skqn0N38xtZ0L/y7fbef3sa6OJ2LAoEyluqByMoF+QkeY+dX80dg4lNVp37U/M5aNf3V um1oHSwRPaj5MdCiZu0jWfdcDbURZse0yzmoUe+kLvbH+IdNhZ62Rcbh1IM0GnYvEMbo rBci6h/X5EkYxSJO6O+JBmdg+SAQy3xumIrQFoodBB+4qISyfRrE8I92vCz2YsS/HztZ 5CsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=kI34S7VeumOJefjDZ4Ybc2SrhtuqeA/BRyIbUDvdjr4=; b=CyiUYsLfFo/fu22i4Kwh2exx7P5d8QauUrqONx1U4i7+g3LCV7zjD4pdZRabm2ys22 rMiS4Cz4wb97vaq4YxHGFWQvKIrjYBBEN/qSWePeL8EsmSb2mOvI2xcoV0zSeqPjOYFy 7bu6LwFpHjBmHhzIdYUzt/ed39Fs54V7P+ST9X6DpM5gzbh5UJEU6FdAMjgv/qVna/PS LYkWO26V3yONg3jZ/qtNYQH/WA3hBfwXn5aOzAcuW8S6NE0n++eJTQQx9tGtG3qi6DVv a8FVc686UuGkcf+spkbhMqYdgweOZEPWUoLBNZYlgu/v6xWPxfoA9v1GkLFh9lHirfNm n3sA== X-Gm-Message-State: APf1xPAM9+8STf5wHrMUDST3DTF/6wQQp7TYGbmmPdTdQBZ5rVtqxd4/ ve82y3TQh2PG+73ysrq80MKNDOpV1Gj/oGVK+/B0ng== X-Google-Smtp-Source: AH8x227tKhEw6ZbNBLvA/Np/IPJkpxgUhqiCCx+465QYsZk2YoMsL6dyn98hLGQ0YQIdheyb5w9MWnTj8NTJcWHkur8= X-Received: by 10.223.178.206 with SMTP id g72mr6835325wrd.135.1519581574426; Sun, 25 Feb 2018 09:59:34 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.109.7 with HTTP; Sun, 25 Feb 2018 09:59:33 -0800 (PST) In-Reply-To: References: From: Dave Page Date: Sun, 25 Feb 2018 17:59:33 +0000 Message-ID: Subject: Re: Proposal for changes in official Docker image To: =?UTF-8?B?0JzQsNC60YHQuNC8INCa0L7Qu9GM0YbQvtCy?= Cc: pgadmin-hackers@lists.postgresql.org Content-Type: multipart/alternative; boundary="f403045cf6b8f37cbf05660d2724" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --f403045cf6b8f37cbf05660d2724 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi On Sat, Feb 24, 2018 at 9:04 PM, =D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC =D0= =9A=D0=BE=D0=BB=D1=8C=D1=86=D0=BE=D0=B2 wrote: > Hi > > 2018-02-19 12:13 GMT+03:00 Dave Page : > > Hi > > > > On Sun, Feb 18, 2018 at 5:41 PM, =D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC = =D0=9A=D0=BE=D0=BB=D1=8C=D1=86=D0=BE=D0=B2 > wrote: > >> > >> Hi! > >> > >> I accidentially sent this email to pgsql-hackers yesterday, sorry! > >> > >> First of all, thanks for the great app :) > >> > >> I started using PgAdmin with docker image (dpage/pgadmin4) a few weeks > >> ago, however I thought that it had some issues, so I decided to make > >> my own image. Some of the advantages: > >> > >> - Use alpine linux instead of centos to greatly reduce image size > >> (170MB vs 560MB) > >> - Use lightweight pure-python HTTP server waitress instead of heavy > >> apache/mod_wsgi > >> - Use python 3.6 > >> > >> You can test the image at https://hub.docker.com/r/maksbotan/pgadmin4/ > >> Readme contains more detailed explanation and usage instructions. > >> > >> The Dockerfile is hosted at github: > >> https://github.com/maksbotan/pgadmin4_docker > >> > >> If you find my work useful, I'd love to make a contribution with these > >> scripts, after some discussion with pgadmin developers and further > >> improvements. > > > > > > Please feel free to submit patches to the existing code. I have no > objection > > to the any of the alternate design decisions you've made (in principal)= , > > except for the intentional lack of SSL support. > > > > Thanks, Dave. > > I updated my image to simplify installing of Python packages. I > decided I do not need a separate build step after all. > Can you point me at documentation on submitting patches to pgadmin? > There are some docs on the git repo and mailing list at https://www.pgadmin.org/development/resources/. To submit a patch, send an email to the hackers list describing the patch and attaching the "git diff" formatted patch file. > > What are your points in including SSL support into container? This can > be done by using, for example, gunicorn instead of waitress, > but I believe that this should be handled by reverse-proxy, like > nginx, in production environment. In non-production environment, i.e. > on developer's localhost, you do not need SSL at all. > > By the way, in my opinion, on production there is one more task to be > handled by reverse-proxy - static files. By that I mean that all > static, not-changing files accessible at '/static/' URL should be > extracted from the container and served by nginx from a local folder. > This does not mean we shouldn't keep them in the image -- it's very > convenient for localhost usage. I haven't found a way to extract > all Flask's static files yet. Well that additional complexity is a very good reason why using two containers for this is overkill. Having two containers to run pgAdmin makes things unnecessarily complex in my opinion, especially given that it can (and is in the current container) achieved with the simple addition of a config snippet for Apache and mod_ssl. The current trend for micro services can easily be taken too far - we should keep the KISS principle in mind. Another reason for including SSL support, is that users have asked for it. Regards, Dave. --=20 Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --f403045cf6b8f37cbf05660d2724 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

On Sat, Feb 24, 2018 at 9:04 PM, =D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC= =D0=9A=D0=BE=D0=BB=D1=8C=D1=86=D0=BE=D0=B2 <kolmax94@gmail.com>= wrote:
Hi

2018-02-19 12:13 GMT+03:00 Dave Page <dpage@pgadmin.org>:
> Hi
>
> On Sun, Feb 18, 2018 at 5:41 PM, =D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC = =D0=9A=D0=BE=D0=BB=D1=8C=D1=86=D0=BE=D0=B2 <kolmax94@gmail.com> wrote:
>>
>> Hi!
>>
>> I accidentially sent this email to pgsql-hackers yesterday, sorry!=
>>
>> First of all, thanks for the great app :)
>>
>> I started using PgAdmin with docker image (dpage/pgadmin4) a few w= eeks
>> ago, however I thought that it had some issues, so I decided to ma= ke
>> my own image. Some of the advantages:
>>
>> - Use alpine linux instead of centos to greatly reduce image size<= br> >> (170MB vs 560MB)
>> - Use lightweight pure-python HTTP server waitress instead of heav= y
>> apache/mod_wsgi
>> - Use python 3.6
>>
>> You can test the image at https://hub.docker.co= m/r/maksbotan/pgadmin4/
>> Readme contains more detailed explanation and usage instructions.<= br> >>
>> The Dockerfile is hosted at github:
>> https://github.com/maksbotan/pgadmin4_dock= er
>>
>> If you find my work useful, I'd love to make a contribution wi= th these
>> scripts, after some discussion with pgadmin developers and further=
>> improvements.
>
>
> Please feel free to submit patches to the existing code. I have no obj= ection
> to the any of the alternate design decisions you've made (in princ= ipal),
> except for the intentional lack of SSL support.
>
> Thanks, Dave.

I updated my image to simplify installing of Python packages. I=
decided I do not need a separate build step after all.
Can you point me at documentation on submitting patches to pgadmin?

There are some docs on the git repo and mailin= g list at=C2=A0h= ttps://www.pgadmin.org/development/resources/. To submit a patch, send = an email to the hackers list describing the patch and attaching the "g= it diff" formatted patch file.
=C2=A0

What are your points in including SSL support into container? This can
be done by using, for example, gunicorn instead of waitress,
but I believe that this should be handled by reverse-proxy, like
nginx, in production environment. In non-production environment, i.e.
on developer's localhost, you do not need SSL at all.

By the way, in my opinion, on production there is one more task to be
handled by reverse-proxy - static files. By that I mean that all
static, not-changing files accessible at '/static/' URL should be extracted from the container and served by nginx from a local folder.
This does not mean we shouldn't keep them in the image -- it's very=
convenient for localhost usage. I haven't found a way to extract
all Flask's static files yet.

Well that= additional complexity is a very good reason why using two containers for t= his is overkill. Having two containers to run pgAdmin makes things unnecess= arily complex in my opinion, especially given that it can (and is in the cu= rrent container) achieved with the simple addition of a config snippet for = Apache and mod_ssl. The current trend for micro services can easily be take= n too far - we should keep the KISS principle in mind.

=
Another reason for including SSL support, is that users have asked for= it.=C2=A0=C2=A0

Regards, D= ave.

--
= Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB = UK: http://www.en= terprisedb.com
The Enterprise PostgreSQL Company
--f403045cf6b8f37cbf05660d2724--