Today, we celebrate a win for developers as we announce that AtomicJar joins forces with the company that started the containers wave we were riding – Docker! 🐳🌊🏄
In 2015, when Richard North created Testcontainers, the world of containers was like the Wild Wild West: new, scary, uncharted yet exciting. This devtools frontier begged for innovation and Docker was the trailblazer riding into town.
Devs loved Docker and it was obvious they were here to stay. Knowing that, we set out to create a developer-first interface to containers. Similar to how Docker made it as easy to build, share, and run container images as Git in the terminal, we sought to build more than just a retrofitted Ops tool. Because the best interface for developers is code, we built Testcontainers – an open-source multi-language library for providing throwaway, lightweight instances of databases, message brokers, web browsers, or just about anything that can run in a Docker container. Define your dependencies as code, then simply run your tests or local development environment and containers will be created and then deleted, all without leaving the IDE. No more need for mocks or complicated environment configurations.
As simple as:
var redis = new GenericContainer("redis:5.0.3-alpine") .withExposedPorts(6379);
And, as with any other code, we can build abstractions on top of it and share them with the team and other developers:
var kafka = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.4.0")) .withKraft(); kafka.start(); var bootstrapServers = kafka.getBootstrapServers();
Just like that, in one line, you can get an instance of Kafka in a container, ready to be used and tested for liveness to avoid test flakiness. Terminated at the end of the session to ensure the cleanup. Using the upstream image, the same one you would be using in production. With support for many languages and first class Testcontainers support in popular frameworks, all you need is Docker daemon.
A few years after Testcontainers’ first release, you could find Testcontainers almost everywhere: Netflix, Uber, Spotify, DoorDash, Google, GitHub, Capital One, Skyscanner, Wise and many more companies united by the same KISS principle of defining containers in code.
What you couldn’t find was a company behind it! 😀Despite its popularity, Testcontainers was just a handful of maintainers, working in their spare time.
Everything changed in 2021 when we became AtomicJar – a company started by us, the original creators and maintainers of Testcontainers. Our mission was to transform how teams create software with products that empower developers to iterate faster and ship with confidence. We set about to launch our flagship product: https://testcontainers.cloud, which allowed more companies to adopt Testcontainers while benefiting from the power, speed and security of the Cloud infrastructure and preserving developers’ local development workflows.
We’ll always be grateful for the people who believed in our vision!
- Andrus Adamchik, who asked the instrumental question, “do you have commercial ideas for Testcontainers?” and validated our idea from the beginning.
- Jon and Olga from Moderne who taught us “how to startup” and introduced us to their investor Sri Pangulur.
- Leonid Igolnik – our first advisor.
- Ed and Eliot from Boldstart – our inception investor who wrote the first check at the speed we never imagined or hoped for!
Followed by many more fantastic people who put their trust and/or money in us, either by investing or joining our team. We are forever grateful to you! 🙌
“But couldn’t you already talk to Docker back then? Why now?” you may ask. Back in 2021, Docker was going through a transformation that would change its focus to developers – a fantastic decision in retrospect. But we were laser-focused on our vision of a combined local & cloud development experience and chose to stay heads down building products, while keeping an eye on the new Docker.
It took us less than a year to turn the idea of Testcontainers Cloud into a product that powered the day-to-day development of developers at some of the largest tech companies in the world. This momentum led to Jon Rosenbaum and Michael Yamnitsky from Insight Partners strongly believing in AtomicJar’s vision and leading our $25M Series A, joined by our existing and new investors.
We continued to stay close to Docker. Our watchdog image “Ryuk” has become one of the top 10 non-official images on Docker Hub, growing at 10M pulls a month. We were invited to give a talk at DockerCon with more than 800 concurrent viewers. Testcontainers examples were added to Docker’s docs. We were talking to the same customers. We were part of the same revolution, just not the same company!
When Docker reached out to us earlier this year, we decided the time was right, because now:
- Docker’s sharp focus remains on developers – the focus we had from day one!
- Docker’s strategy is focused on combining local and cloud experience, so is ours!
- The culture we’ve built at AtomicJar is very similar to Docker’s
- Most of us have dreamed about being part of Docker in the past 🙂
Changing history. One container at a time.
So, today, we are changing history by bringing Testcontainers to the Docker family, so the history lines of both projects become one, as it was meant to be.
What does this mean to the Testcontainers community? Only great things!
- Everyone at AtomicJar will join Docker. We will continue working on the products we were building, with the same or higher customer obsession we had at AtomicJar
- Docker is committed to supporting and growing the Testcontainers community by bringing it to the millions of Docker users, hiring maintainers and attracting contributors
- Open Source is at the heart of both companies. Together, we will continue to invest in and extend the open-source project that we all love. And we have so many ideas of things we can build now that Moby, Testcontainers, and Docker Compose are one big team!
- The millions of Docker Desktop users – the most popular way of running Testcontainers locally – will benefit from additional features that previously were only available through Testcontainers Desktop
- For existing and new Docker customers, Testcontainers Cloud will soon be “one click away!”
We want to thank our wonderful Testcontainers community, especially those who championed The Testcontainers Way and shared it with others. Our partners and vendors who trusted us with the developer experience of their databases and technologies. Framework authors who standardized on Testcontainers and provided first class support for it to their users, leading to more developers discovering Testcontainers. Our investors who allowed us to build AtomicJar the way we wanted to build it and achieve success. Our team – that was quite a ride! Our customers who eagerly tried the products and were patient with bug fixes, 😀And of course Docker, for giving us the opportunity to become part of the revolution!
We are looking forward to sharing with you soon what else we plan to build together.
See you all at DockerCon next year! Let’s finally add “TEST” verb to the list 🦾
Read the Docker blog:
The AtomicJar team