Odoo’s standard code is pre-tested out of the box using sequential, or step-by-step testing.
But when a business has to use this testing methodology in-house, the entire process becomes a burden, draining resources and slowing down CI/CD pipelines.
Still, IT teams need a way to reliably test their custom modules, configurations, and added logic.
The solution is to use a custom, minimal Odoo Docker image that enables task parallelism.
This approach transforms testing into a fast and easily repeatable part of the development lifecycle.
Below, we detail the implementation process and the key technical considerations for optimising your Odoo testing with Docker.
The 4 commandments of testing: non-negotiable requirements for your custom code
Odoo's open-source nature allows businesses to tailor their system extensively.
But when these customisations need validation before deployment, many development teams struggle with efficiency.
The root of the problem is two-fold.
First, Odoo’s standard testing is sequential, which is effective when pre-done by the vendor, but slow and costly when executed in-house.
Second, teams often lack the necessary process isolation.
To ensure custom functionality is stable and deployed reliably, the testing methodology must meet strict technical requirements.
These principles ensure that tests focus exclusively on custom code, without interference from the stable Odoo core:
The 4 essential principles of Odoo testing
1. Test data has to be isolated.
The testing server should exist only for the duration of the test. It must be destroyed immediately afterwards to prevent any shared infrastructure risks.
2. Every test run must be identical.
Reproducibility is key to reliable results. Therefore, the test must start in the same condition every time.
3. Testing has to prioritise speed and optimisation
Tests must run quickly, ideally in seconds, to be adopted by teams into the development process.
4. Tests need to be configured to be scalable
The setup needs to be configured to scale. It needs to handle testing from as little as one module to multiple projects and everything in between, all at the same time.
A minimal Odoo Docker image achieves the best testing results
Businesses need to apply the key principles of speed and data isolation to avoid sequential testing.
The better alternative is running tests separately, with task parallelism.
This can be done with Docker containers, set up for task parallelism, by creating a custom minimal Odoo Docker image.

Minimal Odoo Docker image vs “maximal” Odoo deployment
The Odoo Docker solution is made specifically for running unit tests or "fast tests", rather than full integration tests involving large datasets such as an Odoo deployment.
Maximal Odoo deployment (standard) | Minimal Odoo Docker image (optimised) | |
Components | Includes many components not necessary for unit testing, like complex network configuration and backup setup. | Stripped down for testing; only Odoo and PostgreSQL are needed. |
Set up speed & boot time | Odoo server boot time is at least 20 seconds. | Boot time is reduced to under 6 seconds on average. |
Dependency handling | Uses a default entry point that makes the Odoo server wait for the database. | The database wait entry point is removed. Docker Compose manages the dependency relationship. |
Module installation | Installs all packages and dependencies, regardless of the test being run. | Accelerates execution via on-demand dependency management. Installs requirements only for modules being tested. |
Image tweaks | Standard image used for production. | Includes pre-installed packages for faster startup. |
Utility | Used for full production hosting and monitoring. | Used for rapid deployment, destruction, and non-testing functions like database anonymisation. |
Test workflows in CI/CD with a minimal Odoo Docker image
A minimal Odoo Docker image is designed for seamless use in a continuous integration (CI) pipeline.
Once set up, it becomes the specialised environment where developers can run rapid, automated tests immediately after code changes are deployed.
It follows a three-step logic to ensure maximum speed by testing only the minimum necessary code:
- Detect changes: The system first uses change detection, often utilising tools like git diff, to identify the specific modules altered in a given commit
- Execute tests: Docker Compose is used to call the minimal Odoo image, providing it with the changed module names. This step ensures that the system installs only the necessary module dependencies for those changes
- Use task parallelism: The setup allows for parallel execution of tests. If multiple modules are changed, Docker can run all those test cycles simultaneously.
At the Odoo Experience 2025, we broke down what testing with a minimal Odoo Docker image looks like in practice:
Benefits of testing with a minimal Odoo Docker image setup
Faster database setup & testing
Users can run various tests at the same time. Starting an Odoo test server takes under 6 seconds, including a 33% faster database setup.
More reliable in quality assurance
The Odoo Docker solution offers a reliable and easily reproducible testing environment. It ensures zero data pollution and isolation, as well as change detection.
Affordable and easy to automate
A minimal Odoo Docker image gives IT managers an efficient way to plug Odoo testing directly into automated CI/CD pipelines. Running tests becomes easier and cheaper, which makes overall adoption easier.
Technically flexible and adaptable
Users can scale the setup to test anything from one module to 10 projects at once. The minimal Odoo Docker image can also be used for other purposes, like running database anonymisation scripts.
Reach out to optimise your testing with Odoo and Docker
Talk to our Odoo experts to find the right setup for your development and CI/CD needs.