Quick Start
March 28, 2026 ยท View on GitHub
Get a Keycloak container running in your tests in minutes.
Prerequisites
- Java 11 or higher
- Docker
1. Add the dependency
Maven:
<dependency>
<groupId>com.github.dasniko</groupId>
<artifactId>testcontainers-keycloak</artifactId>
<version>VERSION</version>
<scope>test</scope>
</dependency>
Gradle (Kotlin DSL):
testImplementation("com.github.dasniko:testcontainers-keycloak:VERSION")
See versions.md for the latest version.
2. Write your first test
import dasniko.testcontainers.keycloak.KeycloakContainer;
import org.junit.jupiter.api.Test;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
@Testcontainers
class MyKeycloakTest {
@Container
static KeycloakContainer keycloak = new KeycloakContainer("quay.io/keycloak/keycloak:26.4");
@Test
void shouldStartKeycloak() {
String authServerUrl = keycloak.getAuthServerUrl();
// use authServerUrl to configure your Keycloak client
}
}
3. Import an existing realm
Place your realm export JSON in src/test/resources/ and pass it to the container:
@Container
static KeycloakContainer keycloak = new KeycloakContainer("quay.io/keycloak/keycloak:26.4")
.withRealmImportFile("/test-realm.json");
4. Get an admin client
org.keycloak.admin.Keycloak adminClient = keycloak.getKeycloakAdminClient();
The keycloak-admin-client is a transitive dependency โ no extra declaration needed.
Next steps
See the full README for all available configuration options: TLS, production mode, custom extensions, debug support, and more.