Propose new features
Designing Decidim together
A better Decidim in Docker
I use Docker for decidim instance, and the decidim/docker is helpful but not really actionable as it is. This proposal aims to push forward docker use inside decidim.
Nowadays, my concerns for Decidim in Docker are:
- It needs to be ready to be run with sidekiq, puma and others (activestorage/activecable).
- It needs more env variables to be configurable (caching/files in s3)
- It needs some docker-compose to show integrations with initiative time-stamping, etherpad and e-voting
- It needs some minor security improvements, to match common docker configurations for production:
* no sudo user in the container
* no needs of nodeJS at runtime
* and other things too sensible to be describe here.
The solution I would like
- Remove decidim/docker repository that uses the generator
- Improve decidim-generator
* A Dockerfile production-ready
* Add binaries to run: sidekiq/puma/actioncable/actionstorage.
* Add env variables to configure the container: caching, files in S3, logs rotation, etc.
Considered Alternatives
I don't see any future for decidim/docker repository, as a Docker container need to run an existing app. I don't see alternatives for Decidim in Docker than a bump of the generator.
An alternative to the Dockerfile placement would be to create a .deploy folder in the rails root, in order to have other kinds of developments, like:
- .deploy/heroku/
- .deploy/docker/
- .deploy/digitalocean
- etc.
And then add a documentation to move files you want for deployment. I am not a big fan of this, because I think that Decidim should focus on one deployment method and Docker container is much more resilient.
Funded by
Octree Geneva is ready to develop this feature.
This proposal is being evaluated
List of Endorsements
Report inappropriate content
Is this content inappropriate?
Comment details
You are seeing a single comment
View all comments
Conversation with Hadrien Froger
Cool, happy to see your support. And thanks for the links.
About previous work
Indeed you already have done some great jobs there! Will definitively take a careful look at you POC. The issue #5405 will be resolved if we move Dockerfile from a dedicated repo to the generator.
ETA
As for an ETA, most of the docker config is almost ready our side. We need to write documentation and do some tests. End of November we can propose a Dockerfile and some docker-composes.
If the community agree to get rid of the decidim/docker repository, I think it impacts also the pipelines but I don't have a clear view of what it is needed to be done regarding pipelines right now, because I don't know them in details. So for a complete support of docker, I see an ETA for march/2022 worst case.
"Only support Docker" decision
As I am new to this community, it is unclear how can we decide that the decidim product should ONLY supports docker officially. Is it a new proposal I should make? Something to bring within an association meeting? Is it clear enough in this proposal?
As you are here for some time, I would be grateful if you can give me some pointers on how I can bring more clarity.
Cheers,
Awesome! To be fully transparent, Decidim Association is actually in the process of contracting @Platoniq for this same issue, but as this has lots of possible ways of improvements, so I think this shouldn't be a problem.
For me, the "correct way" should be that we first have a working version for this and after we have both deployments working (Rails "raw" vs Docker), then we can make another proposal with this "Docker by default" change, and @product should approve that. Mind that I'm a member of @product, so that should be easy 😅
🎉 cool, happy to collaborate with @Platoniq on this.
Thanks for clarifying the process, makes complete sense.
Loading comments ...