Open DerLeole opened 1 year ago
Hi!
I actually used containers because, specially on windows, the permission problems were a real pain and the volumes are a nice solution to this that works without having to map any user ids and so on. Tha being said, it's probably just a matter of trying a couple of possible setups etc and shouldn't be impossible to fix.
As for putting everything in one container, while it would be still possible to cram everything in there right now, the more services we need the more difficult this becomes. E.g. we're planning on adding a celery task queue for background tasks in the near future. Separating these services on their own image is also a best practice in the docker world (and is the reason why tools like docker compose exist). In the end, it's still the easiest way to deploy a complex application with lots of moving parts
Frankly, I think it's kind of a bait-and-switch to have the demo be extremely easy to deploy when the actual project requires 6 separate containers. I'm running rootless Podman instead of Docker and the approach to networking (pods) is entirely different, so multi-container compose files just don't work. It would be only mildly inconvenient if it were 2-3 containers, but 6 is just insane.
I'm considering running the demo indefinitely because it just works. Add some volume mounts and you're good to go. If that doesn't shake out I'm probably just gonna make my own solution in Obsidian or something. Just my $0.02 as a user who's annoyed at this setup and only needs something simple for my personal use.
note that the demo does not have all the functionality (specially the sync stuff) and once we merge the powersync stuff for offline mode, the mobile app won't work with it. If there is a way to configure podman with several services or a "podman-compose.yml" I'll gladly accept that and refer to it from the docs, but in the end the deployment is made for docker (the one with containers, it's of course possible to install all this bare metal on a server)
As the main purpose of docker containers is the quick, easy, and scalable deployment of software, having to manage multiple of them for a single app can be tedious when one plans to host multiple wger instances.
Additionally I suspect some of the problems that arise in the docker in regards to data persistence, volumes, and binding local directories can be traced back to permissions errors between the different containers. A singular container allows for tighter controls of these and properly setup with environment variables like "GID" and "UID" would allow for rootless operation, which is an important feature to have.
Finally it would allow for the cleanup of environment variables, as some might not be needed anymore and simplify the nginx setup.
I know this is a tall order and probably a good bit of work, but it would make for much easier deployment, more consistency, and likely fix some errors reported here along the way.