Kontainers
Kontainers is a Kotlin framework providing the capability to run Open Container Images (OCI) on Docker, Kubernetes, and possibly other platforms in the near future. This can be valuable in cases where you want to run a database or messaging system for integration testing and then tear down such resources after tests complete.
Kontainers enables users to write and run integration tests locally with Docker Desktop or Minikube, while also utilizing modern, Kubernetes based CI/CD systems that may not permit or support the Docker runtime.
Architecture
Kontainers provides a platform-agnostic Kontainer specification that allows users to define a request to run a container using a simple, domain specific language (DSL). The specification is then used by a Kontainer factory to start the container on either Docker or Kubernetes, depending on the capabilities of the platform on which your code is run.
Getting Started
To start working with Kontainers, read the Kontainers Getting Started Guide.
All modules:
Experimental Kontainers' support for Apache Kafka.
Defines the Kontainers domain, DSL, and specifications for platforms capable of running Kontainer instances.
Provides factories for running Kontainers on various backends.
Provides a JUnit Jupiter extension to simplify using Kontainers in JUnit 5 test suites. If you are using Kontainers for integration testing, this is the simplest way to get started.
Kontainer support for LocalStack.
Provides MariaDB Kontainer support.
Provides Kontainers' support for Micronaut.
Provides MongoDB Kontainer support.
Provides MySQL Kontainer support.
Provides PostgreSQL Kontainer support.
Module for running Redis Kontainers.
Provides Kontainer's support for Spring Boot.
Kontainer support for Apache Zookeeper.