haiwen / seafile-docker

A Docker image for Seafile server
Other
544 stars 184 forks source link

Many fixes to allow use inside kubernetes + webdav working #187

Open cr1st1p opened 4 years ago

cr1st1p commented 4 years ago

Fixes:

GRBurst commented 4 years ago

@renfeipeng @lins05 we haven't seen any commits or progress for a while now.

194 also targets a subset of this pr (e.g).

I think it is a very common use-case to run docker behind a proxy like nginx, so this pr adds some crucial features.

hasufell commented 4 years ago

Is this repo still maintained?

freeplant commented 4 years ago

The configuration files like seahub_settings.py and seafdav.conf should not be changed on every start up. They should only be written in the first time when setting up the server. Then they should be updated manually if needed.

I don't understand why in kubernetes they need to be updated on every start up.

cr1st1p commented 4 years ago

@freeplant programs run as docker images are configured via environment variables. And, maybe, in more rare cases, if configuration is more complex, still by configuration files. In case you drive the image via environment variables, then you must reflect that inside the container (in this case, configuration files, nginx config, and so on). I think that even before my changes it was already done by that, I just improved it. And if environment variables change, you must ensure you reflect that - which means at every container start.

kubernetes runs docker images (well, not only docker, but that's not related to current story), so it drives them via environment variables. And for those cases where you really need configuration files, you generate them from ConfigMap. You still don't manually edit files to apply some change. It does not mean that you can not, but it would be bad practice. Generally - you'd want all your changes over time to be kept, historically, for reviews, for security analysis, for sharing, etc. In git for example.. Regardless if we're talking about environment variable change, ConfigMap change, or even plain configuration file change (when you'd want the whole config file to be stored in git).

Get this - we're in a world where you try not editing things manually anymore. Code and configuration now stay in a revision control system (git usually) and from there it gets into a live system. Heck - now even whole computer clusters are created directly from config/code stored in git ("infrastructure as a code") - no more manually going to run a new instance and a new database server and configuring things.

Hope that helps. Regards.

hasufell commented 4 years ago

I don't understand why in kubernetes they need to be updated on every start up.

That's how it's done in docker. See every major docker image.

cr1st1p commented 4 years ago

I updated this PR with:

Until this gets merged, whoever needs the docker image:

GRBurst commented 3 years ago

There is no progress here, sadly the response / community support does not seem to be a high priority here :-( Thanks for your effort @cr1st1p :+1: Since it is still not possible to get it to run easily with a clean approach, I'll move to another solution.