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.
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:
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.
Octree Geneva is ready to develop this feature.