Plone docker container with volumes has permissions error

Yes.

How do you generate the zope configuration files for your ZEO client containers? The usual way is to use buildout. I could imagine this happening at container build time. This configuration dictates what it tries to do. This configuration will be different for you for the ZEO clients and the ZEO server.

Of course you can just manually create everything for your containers, that'll also work.

I'm using the standard Docker container with everything all set up :slight_smile:

I am working on an add-on theme, though, which will require a buildout. I've been having trouble with that, but that's another topic...

I'd call that experimental and untested at best. Standard does not sound right.

I welcome a show of hands for who uses that in production to prove me wrong.

Then.... is the only supported solution to spin up a whole server with Plone on it? I ran into a lot of trouble even getting simple addons to build with the unified installer; should I downgrade to Plone 4 to enable that?

Plone for docker is not official supported release and doesn't get mentioned here https://plone.org/download.
That said there is nothing wrong with it. It works. We use it as the base for our docker images but we change a lot of things.

The important thing that perhaps isn't documented well, is that plone in docker doesn't mean you don't have to understand the configuration settings. I had thought docker allows you to override any instance buildout recipe setting but I can't see that in the documentation but the shared blob setting has its own docker env variable

https://docs.plone.org/manage/docker/docs/usage/variables.html

Looking further at the code it seems to only support setting your own zope.conf directly and doesn't use buildout to generate that file anymore which is shame.

I'm sorry for being really dense here, but I'm still not understanding something...

Should I be using shared blobs?

Right now, the architecture calls for the DB container, and only the DB container, to have blobs on it. The plone clients don't even know that shared storage exists. The only reason it's on EFS is so that the files persist and can be easily reattached if the DB container goes down, or the instance behind it. It could just as easily use EBS, but I'd prefer to avoid that because ECS creates a new EBS volume every single time an instance starts.

So if nothing is really sharing the blobs, should I be enabling shared blobs?

I'm sorry for being so difficult... I'm really new to this...

No.

It's not like this is (or especially ever was) too easy for us either. We've just been at it for longer.

The commands you showed and your diagrams seemed to indicate your zope/plone clients were accessing the same shared dir for blobs ie mounting the same blobstorage dir in all containers. If you are you need to turn on shared blob storage setting. If you aren't sharing them you don't need to turn it on.

Given you are using EFS I would use shared blobs. It works well, saves diskspace and will speed up your site. However if you are having problems with it then sure you can decide not to use it. Just make sure your settings match your architecture.

@Rotonen @djay I just wanted to say thank you... I think I have it working. You may have another production user running Docker soon!

Please feel free to give back by submitting a PR on the documentation for docker plone. It's obviously needs some more details