Why We Don’t Use Docker for Odoo at Cloudpepper (And Why That’s Good for You)

In modern software deployment, Docker is the default answer to almost everything. It powers CI/CD pipelines, makes life easier for developers, and is deeply loved by DevOps teams.

So when people look under the hood of Cloudpepper’s hosting, they are often surprised to discover we don’t run your production Odoo instances in Docker containers.

Instead, we run Odoo directly on the host using systemd on powerful bare metal and virtual servers.

That is not because we are nostalgic. It is a deliberate choice made for one simple reason: We care more about your performance and data integrity than about chasing trends.

Docker is fantastic for development and testing. But for a complex ERP like Odoo, the trade-offs are not worth it. Here is why.

The “Pets vs. Cattle” Reality

In the DevOps world, the “Cattle” approach is often hailed as the gold standard. The idea is that servers should be disposable. If a container has an issue, you don’t fix it. You delete it and spin up a fresh one. This is fantastic for stateless microservices and simple web apps.

But Odoo is not a simple web app. It is a complex system that holds your company’s lifeblood.

At Cloudpepper, we believe your production Odoo instance should be treated like a “Pet”: a cherished, long-lived asset with its own identity, history, and critical data.

  • Cattle (The Container approach): Great for handling bursts of web traffic, but risky when you are dealing with complex, persistent data.
  • Pets (The Cloudpepper approach): Optimized for stability. We surgically upgrade and tune your environment in place, ensuring your filestore and database are never treated as disposable.

We still automate heavily, but we do it in a way that respects the reality of an ERP. It is not just another microservice. It is the system that runs your business.

The Hidden Costs of Containers

Docker solves a big problem for developers: “it works on my machine.” You bundle everything together, ship an image, and you are done. In production, however, that convenience comes with costs that are rarely talked about in marketing material.

1. The Performance Tax

Every layer between your application and the hardware adds overhead. For most simple apps, this is negligible. For an ERP that is constantly hitting the database and filesystem, it starts to matter.

With a container stack you typically have virtual networking, layered filesystems, and extra abstraction between the process and the host kernel. Each of these is small on its own, but together they introduce latency.

By running Odoo directly on the host, Odoo talks directly to the kernel and I/O goes straight to the disk. For high traffic sites, this means a noticeably snappier system.

2. The Myth of the “Standardized” Image

There is a common misconception that Docker guarantees a best practice setup. In reality, the quality of Docker images varies enormously. Even official images can have suboptimal worker configurations or poor default logging.

We spend a huge amount of time optimizing Odoo and PostgreSQL for real workloads. Baking all of that into a single Docker image often makes it bloated or forces you into rigid patterns that don’t match how Odoo partners actually deploy for their customers.

By controlling the OS layout ourselves, we can tune the database, Nginx, and system limits properly. You get a system designed for serious Odoo use, not just a convenient “one size fits none” image.

3. Complexity You Don’t Need

Containers shine when you have dozens of microservices that need constant independent updates. Most Odoo setups are the opposite: one main application, one database, and a few supporting tools.

Wrapping this in Docker often means extra orchestration and plumbing that doesn’t add business value. It creates more things that can break at 3 a.m. and assumes a disposability that simply doesn’t exist for the system holding your accounting data.

How Cloudpepper Gives You the Best of Both Worlds

You might be thinking: “Okay, but I still want the benefits of modern automation.”

Neither do we want hand crafted servers. Our platform acts as an automated, expert sysadmin.

Behind the scenes, we use automation to make your infrastructure reproducible and scriptable: giving you the reliability benefits of the “Cattle” model, while treating your live Odoo database with the protection and care of a “Pet.”

This means you get one-click deployments, automated backups, and consistent configuration without sacrificing the raw performance of running directly on the host.

Final Thought

Docker is one of the best tools to happen to infrastructure in the last decade. But like any tool, it is not ideal for everything.

For Odoo, the beating heart of your operations, we have chosen a different path: Bare metal performance, systemd managed services, and a “Pet,” not “Cattle,” treatment of your ERP.

If you want to see what that feels like in practice, spin up a trial on Cloudpepper. The difference isn’t theoretical. You will feel it every time your team hits “Save” or runs a big report.

Share this article