plone / plone-backend

Plone backend Docker images using Python 3 and pip.
GNU General Public License v2.0
12 stars 14 forks source link

META: several improvements for our official images (for Plone 6.1 ?) #143

Open fredvd opened 4 months ago

fredvd commented 4 months ago

Gathering some topics for improvement base on existing issues and some discussions during Beethoven sprint 2024.

Use separate paths in frontend and backend containers instead of /app

To prepare for new plone.distributions and creating single container demo images for these distributions, I'd like to discuss to move plone-backend and plone-frontend install paths in the containers to separate paths. They both install in /app now. this means we would need to create and maintain alternative docker-entrypoint.sh's. If plone-backend would install in /backend and plone-frontend in /frontend, a single image plone-demo Docker image could copy from our containers and re-use the docker_entrypoint.sh

/data would contain the zodb/blobstorage /venv the virtualenv required for the backend. ( @ericof you mentionned something at Beethoven sprint this had advantages?

For a distribution single image demo we could then use supervisord (we have to install python anyway) or a lightweight alternative like multirun to start the separate processes.

Switch to another wsgi server

The waitress wsgi server we are now using did have a 3.0 release, but issues like ont responding to SIGINT now adds a 10 second delay to any plone-backend container shutdown. There are also other known issues with waitress. Maybe use an alternative and also actively maintained wsgi server like pyruvate from @tschorr?

Decrease final container image size

For example see #132

Please add more here.

jensens commented 4 months ago

+1 for

-1 for using supervisor or alike to start both in one

I would create a endpoint with two options to start either one or the other.

ad WSGI server: Either fix waitress or switch to a better one - in Kubernetes missing SIGINT support it is really annoying.

I can also recommend to look at Kaniko to build the images.

avoinea commented 4 months ago

+1 for this.

@fredvd With this occasion maybe we can also resurrect the Plone Official Docker image at https://hub.docker.com/_/plone

tschorr commented 3 months ago

Maybe use an alternative and also actively maintained wsgi server like pyruvate

Today I've released Pyruvate 1.3.0 and also ran benchmarks with a couple of WSGI servers including waitress and bjoern.