Hibou Odoo Docker Manifesto
Use Docker in Development and Production
I have been using Docker more and more, and the Docker project has progressed to the point where I prefer to use a bare host OS over lots of Virtual Machines (KVM or otherwise).
Eight months ago I forked Odoo's Dockerfile and have enhanced it in several crucial ways.
Newer (and faster) version of Python
Support for newer versions of Postgres
Newer versions of Node & Less
Support for Workers > 0
Optional Python packages bundled by default (e.g. flanker)
I've now been using this image for well over six months for my development and production needs, as well as my client's production needs.
Advantages Over Package or Source Deploy
It is very easy to run tests when they run in their own process space. You can even leave a development server running for use in a browser and continuously upgrade and test the specific packages you are working on. Since the testing container has its own network, you don't need to override the XML-RPC port or config file, simply start the container with a couple of command line flags.
As above with testing, you can use the same config file and setup, simply start a new container with '-- shell -d yourdb' to get easy shell mode. Need a clean testing environment? Spin up a new database container to go with it.
Installation and Dependencies
One of the pain points I see in the community is installation and dependencies.
"What is wrong with/which version of Wkhtmltopdf do I need?" The one installed in the container.
"Why are my front end assets messed up? What is wrong with my node/less?" The one in the container works.
I have recently started using Docker Compose, and see some quality of life improvements for everyone there.
Look forward to more articles in the near future sharing more Odoo and Docker tips and tricks.