Plone 6 Classic with Docker & ZEO: Are ZODB mount points still possible?

Is there a way in Plone 6 to configure separate blob- and filestorages on a ZEO server? Background: I have many small websites and want to add migrated sites to a my plone server without importing them as .zexp. All Plone sites reside in one ZOPE.
My approach is to add another filestorage configuration to my custom zeo.conf that is copied into my plone/plone-zeo based image like this:

<filestorage 2>
path $DATA_DIR/filestorage/2/Data.fs
blob-dir $DATA_DIR/blobstorage-2/blobstorage
pack-keep-old $(ZEO_PACK_KEEP_OLD)

I think Products.ZODBMountPoint module needs to be added to the instance (built with plone-cookie-cutter) as well.
I got 'ZODB mount point' in the add-box, but then i get this 'No mount points configured.'.
Where do i configure them? Thank you!

I think you should edit the zope.conf file directly

It replaces the zeo.conf in the docker image, the images build works, but i can not figure out how to define a mount point. in zope.conf it was something like 'mount-point .

For years I've used a single Zope installation with Zeo for many sites. I tried replicate that with docker but eventually gave up. Instead I followed @jensens advice and just used a container for each site (with RelStorage instead of zeo). It end up being much easier than fiddling with zeo.conf and zope.conf.

If need, I can create another container with the same RelStorage config to scale the site (kinda like docker compose does)

For migration I used collective.importexport, pretty straightforward.

1 Like

FYI: mount points still work. We use single plone 6 instance for many sites (but volto).
For volto you have to use a different container for each express server but not for plone.

I forked @jensen's cookiecutter template with some options for ZODB mount points. GitHub - ewohnlich/cookiecutter-zope-instance: It bakes configuration for Zope 5 and GitHub - ewohnlich/cookiecutter-zeo-server. Those are not fully developed for others' use, that was just the minimum to put in what I needed. But it may be of use as a reference.

I also had to add Products.ZODBMountPoint to my venv, it is not a dependency for Plone/Zope by default.

@Esoth cool, if all is set a PR would be nice!