DEV Community

Cover image for What’s One Bazel Feature You Wish Docker Had?
Sai Kiran
Sai Kiran

Posted on

What’s One Bazel Feature You Wish Docker Had?

Docker and Bazel solve overlapping but fundamentally different problems. Docker focuses on simplicity and portability: define an environment once, build an image, and run it anywhere. Its mental model is easy to grasp, which makes it a great default for CI, deployment, and local development.

Bazel, on the other hand, is about correctness, reproducibility, and scale. It tracks fine-grained dependencies, supports hermetic builds, aggressive caching, and incremental rebuilds across large monorepos. That power comes with real complexity: steep learning curve, custom rules, nontrivial setup, and workflows that can feel heavy compared to a straightforward Dockerfile.

Which leads to the real discussion: what single feature, if Docker had it, would make Bazel unnecessary for you?
Is it reliable, content-addressed caching across machines?
True incremental rebuilds based on source-level dependency tracking?
Hermetic, reproducible builds by default?

If Docker (or a simpler Docker-compatible frontend) could offer one of those convincingly, would Bazel still be worth the cost?

Top comments (0)