[GeoNode-devel] Fwd: Docker Strategy Chat
xbartolone at gmail.com
Sun May 27 23:48:55 PDT 2018
Fyi. My reply was held for moderator's approval before the delivery to this
mailing list container
---------- Forwarded message ---------
From: francesco bartoli <xbartolone at gmail.com>
Date: lun 28 mag 2018 alle ore 08:41
Subject: Re: [GeoNode-devel] Docker Strategy Chat
To: Olivier Dalang <olivier.dalang at gmail.com>
Cc: geonode-devel <geonode-devel at lists.osgeo.org>, Cristiano Giovando <
giovand at gmail.com>, Frédéric Jacon <frederic.jacon at camptocamp.com>, G.
Allegri <giovanni.allegri at geo-solutions.it>, Gavin Fleming <
gavin at kartoza.com>, Vivien Deparday <vdeparday at worldbank.org>, Alessio
Fabiani <alessio.fabiani at geo-solutions.it>, Alessandro Parma <
alessandro.parma at geo-solutions.it>, Ariel Nunez <ariel at terranodo.io>
thanks, my comments inline.
Il giorno lun 28 mag 2018 alle ore 06:54 Olivier Dalang <
olivier.dalang at gmail.com> ha scritto:
> Hi !
> I made some progress on my Docker setup, it's now based on 2.7.x (future
> 2.8.1) : https://github.com/olivierdalang/SPCgeonode/tree/master-2.8.1
> Most importantly, I removed my infamous postgres hack to use OAuth2
> instead, so that it's more similar to a typical Geonode installation.
> I also made several other smaller improvements (see changelog/git
> history), including easy to configure backups using rClone (with sample
> configuration for amazon s3).
> I didn't test it much yet, but basic functionalities seem to work again
> (uploading layers, setting thumbnails, changing style, wms...).
> I suggest you guys have a look. If this makes sense, I suggest following
> next steps :
> - 1/ To move it somewhere under github.com/Geonode
> - 2/ I can work on a PR to document this in Geonode's documentation
> - 3/ If ready before 2.8.1 (is there a date already ?), we could advertise
> this as an experimental deployment method for some time, and promote it to
> supported deployment method for 2.8.2 release (if feedback is good)
> Help/input still needed on :
> - Geoserver Dockerfile. I don't know much about deploying java web apps,
> so I just used the vanilla GeoServer binaries which includes a Jetty
> webserver and added Geonode's geoserver.war on top of it. It looks like
> it's working, but I've no idea if there's a better way to do it. Also there
> are a lot of warnings on GeoServer startup, not sure how serious they are.
[FB] The recommended java container should be Tomcat. If you are going to
work on PR the best approach would be you start from the current repo
> - Add the QGIS backend option
> - Your thoughts about the idea of hosting this under the main Geonode repo
> instead of a separate repo (to avoid replication between dev setup and
> production setup), probably to discuss in detail with Francesco.
[FB] I've the impression here that an optimal solution would be to keep
separate dev and prod setup which means we might create an unique repo for
the prod one where GeoNode is managed as a library (relying on stable pip
versions) so we can address also geonode-project under the Ariel's vision
and keep a docker-compose for dev on the geonode repo as it is now.
- See if there's a way to run the integration tests on the docker-compose
[FB] This should be very important imho and at least should cover minimal
use cases like the basic functionalities you mentioned above
> - There are some problems with the monitoring module (I disabled it, it
> crashes during migrations, looks like it's trying to reach GeoServer which
> isn't available during migrations in my setup)
> - Discuss if there's a possible strategy for long term migration path of
> the geonode data directory (to avoid data loss/starting from scratch for
> upcoming updates)
> - General review/comments
[FB] If working on a PR my general suggestion would be to accommodate your
work as much as possible with that already in place under the *-docker
repos on the Geonode github organization
> On Fri, Apr 20, 2018 at 1:40 AM, Ariel Nunez <ariel at terranodo.io> wrote:
>> I suscribe to the vision of geonode as a library and that a
>> geonode-project should be a simple django project that does not import
>> anything from geonode.settings. The reason for this is that geonode becomes
>> a starting point and what people start to build are their own projects.
>> I hope at some point in the near future we deprecate geonode.settings at
>> all and instead let an ecosystem of different starter projects built on the
>> same docker base images flourish.
>> On Thu, Apr 19, 2018 at 5:52 AM Olivier Dalang <olivier.dalang at gmail.com>
>>> Hello all !
>>> Thank you all for the great discussion !! I very much appreciated how
>>> much you all took into account my inputs and I felt part of the discussion
>>> despite being deeply asleep :-) Thank you very much for the recording
>>> Cristiano !
>>> I think there are two different needs that were discussed, the need for
>>> stable docker images (typically for providers to build their custom stacks
>>> on reliable/secure images), and the need for a supported deployment through
>>> docker-compose (typically for smaller users without skills/ressources to do
>>> a proper deployment on their own).
>>> So far I focused only on the docker-compose for deployment (as it's the
>>> case we need to support here).
>>> But I agree having those stable images would be great too. I think that
>>> even if the needs are different, in the end they may very well align in one
>>> setup, where the docker-compose setup for production could even serve as an
>>> integration test of the individual docker files.
>>> It's not completely clear to me what the scope of those images would be.
>>> I think at the very least, they would include all dependencies (system and
>>> Would they also include build steps (instead of pulling external builds
>>> from builds.geonode.org) ? (may be good in terms of build stability and
>>> make it easier to contribute, also with multistage dockerfiles it's quite
>>> easy to keep images lightweight despite having the whole build process in
>>> Would they be though as final images (that you use as is, just by
>>> configuring env vars), or base images (that are supposed to serve as base
>>> to user's custom dockerfiles in a composition) ?
>>> Also it will be hard to find the sweet spot between too little
>>> opinionated (it would become a pain to configure and loose stability) and
>>> too much (you wouldn't be able to use it anymore in a custom stack).
>>> I had another thought about docker-compose that I don't think was raised
>>> : with the current geonode-project approach, there will be some
>>> duplication, because there is already another docker-compose file in
>>> Geonode's main repo (for development and testing of geonode itself - which
>>> is obviously also needed).
>>> Could it be that the docker-compose setup for deployment is built on top
>>> of the docker-compose for development ? In the end, the geonode repo
>>> already contains a django project. It's just a matter of being able to
>>> override the settings. I'm not sure if this would end up being overly
>>> complicated for nothing, or if it would be a win because of increased
>>> similarity between dev setup and deployment setup. Going that way would be
>>> a step towards a continuous delivery model (a big incentive for devs to
>>> upstream their features). I also believe that with Alessio's recent
>>> commits for UI customization, around 50% of the use cases for
>>> geonode-project just vanished (thanks for that great feature :-) ).
>>> I also agree with Tim on the idea of supporting both the QGIS and
>>> Geoserver backends. I'm not familiar enough with the differences that
>>> implies so far to tell how much work that would be.
>>> And about the smaller scale technical questions :
>>> - Containers restarting VS. wait-for-postgres.sh : I have no strong
>>> opinion about that. It's true that it would look a little bit more elegant
>>> at first startup, but it also adds a little bit of complexity in the
>>> entrypoint, and we must make sure we don't create artificial blockages
>>> (e.g. waiting for geoserver would be a bad idea, as we should be able to
>>> start even if geoserver is down).
>>> - Additional requirements (pip) : I'll try to make a PR to upstream
>>> those fixes including some other to make pip install more stable, as
>>> discussed here : https://github.com/GeoNode/geonode/issues/3227
>>> - About the more minimal docker-compose (without letsencrypt and other
>>> optional components), so far I use docker-compose up nginx django
>>> geoserver postgres for that purpose, but we could indeed also use
>>> docker-compose overrides to achieve similar result. I would vote for the
>>> option that looks the most clear in the command line.
>>> I'll continue to push my setup a bit further anyway (to 2.8) and agree
>>> with idea of another talk at some point.
>>> Thanks again!
>>> On Thu, Apr 19, 2018 at 2:45 AM, Cristiano Giovando <giovand at gmail.com>
>>>> Thanks to everyone who joined the docker chat today - here's the
>>>> recording in case you missed it:
>>>> Please share any feedback here or directly in the GNIP:
>>>> Looking forward to a successful and coordinated approach! ;)
>>>> On Tue, Apr 17, 2018 at 9:44 PM, Cristiano Giovando <giovand at gmail.com>
>>>> > Hey all,
>>>> > Following some good conversations around the topic at the summit and
>>>> > recent GNIP by Olivier, we're planning a call tomorrow at 15:00 CEST
>>>> / 13:00
>>>> > UTC to chat about a common strategy. We're inviting anything who's
>>>> > interested to join.
>>>> > Here's the GNIP for reference:
>>>> > https://github.com/GeoNode/geonode/issues/3707
>>>> > Meeting link:
>>>> > Join by phone
>>>> > 1-650-479-3207 Call-in toll number (US/Canada)
>>>> > Access code: 733 296 941
>>>> > Global call-in numbers:
>>>> > See you tomorrow!
>>>> > Cristiano
>>>> geonode-devel mailing list
>>>> geonode-devel at lists.osgeo.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the geonode-devel