Skip to content

Modules

The modules artifact ships preconfigured containers — a sensible default image, an exposed-ports set, a wait strategy that's been checked against a real boot (not just assumed from the docs), and connection helpers that hand you a ready-to-use URI or JDBC URL rather than making you assemble one from getMappedPort calls yourself.

testImplementation("dev.rightsize:modules")

Catalog

Module Default image Helpers
RedisContainer redis:latest uri
ValkeyContainer valkey/valkey:latest uri
ArangoContainer arangodb:latest endpoint, withRootPassword(...)
MemcachedContainer memcached:latest address
MongoDBContainer mongo:latest connectionString, replicaSetUrl (single-node replica set, auto-initiated)
PostgreSQLContainer postgres:latest jdbcUrl, username, password, databaseName, withUsername/withPassword/withDatabase(...)
MySQLContainer mysql:latest jdbcUrl, username, password, databaseName, withUsername/withPassword/withDatabase(...)
MariaDBContainer mariadb:latest jdbcUrl, username, password, databaseName, withUsername/withPassword/withDatabase(...)
RedpandaContainer redpandadata/redpanda:latest bootstrapServers, schemaRegistryUrl
KafkaContainer apache/kafka:latest bootstrapServers (KRaft single node)
RabbitMQContainer rabbitmq:management (not latest — see the module page) amqpUrl, managementUrl, username, password, withUsername/withPassword(...)
ClickHouseContainer clickhouse/clickhouse-server:latest httpUrl, username, password, databaseName, withUsername/withPassword/withDatabase(...)
PinotContainer apachepinot/pinot:latest controllerUrl, brokerUrl (QuickStart -type EMPTY single-container cluster)
SpringCloudConfigContainer hyness/spring-cloud-config-server:latest uri
WireMockContainer wiremock/wiremock:latest baseUrl, adminUrl
KeycloakContainer quay.io/keycloak/keycloak:latest authServerUrl, managementUrl, adminUsername, adminPassword, withAdminUsername/withAdminPassword(...)
Neo4jContainer neo4j:latest httpUrl, boltUrl, username, password, withPassword(...)
FlociContainer floci/floci(-az\|-gcp):latest FlociContainer.aws()/.azure()/.gcp(), endpointUrl
FlinkContainer flink:latest restUrl, withTaskManager() (docker only)
MinIOContainer minio/minio:latest endpointUrl, username, password, withUsername/withPassword(...)
CassandraContainer cassandra:latest contactPoint, cqlPort, localDatacenter
ElasticsearchContainer none — no floating tag exists; an explicit image is required restUrl
QdrantContainer qdrant/qdrant:latest restUrl

Every module page includes: the default image and how to override it, the field defaults, every helper method, a complete copy-paste JUnit 5 test, and any backend-specific notes worth knowing before you run it.

No module in this catalog pins a version — every default above is a floating reference that tracks upstream's own releases (Elasticsearch has none at all; see its page). Each module's own KDoc/page states the specific version its readiness signal, memory floor, and timing facts were verified against, and constructing with that image explicitly pins it. Passing any explicit image checks its repository against the one the module understands, failing fast with a typed IncompatibleImageException rather than a bare wait-strategy timeout on a mismatch — see each module's own "Compatibility checking" section, or Core Concepts for DockerImageName itself.

Don't see what you need?

Every module is a thin subclass of GenericContainer — if there's no preconfigured module for your image, use GenericContainer directly with your own withEnv/withExposedPorts/waitingFor calls. See Getting Started for the shape.