|
20 | 20 | from testcontainers.core.waiting_utils import wait_container_is_ready, wait_for_logs
|
21 | 21 |
|
22 | 22 | _DEFAULT_DEV_COMMAND = "start-dev"
|
| 23 | +# Since Keycloak v26.0.0 |
| 24 | +# See: https://www.keycloak.org/server/all-config#category-bootstrap_admin |
| 25 | +ADMIN_USERNAME_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_USERNAME" |
| 26 | +ADMIN_PASSWORD_ENVIRONMENT_VARIABLE = "KC_BOOTSTRAP_ADMIN_PASSWORD" |
23 | 27 |
|
24 | 28 |
|
25 | 29 | class KeycloakContainer(DockerContainer):
|
@@ -57,6 +61,9 @@ def __init__(
|
57 | 61 | self.cmd = cmd
|
58 | 62 |
|
59 | 63 | def _configure(self) -> None:
|
| 64 | + self.with_env(ADMIN_USERNAME_ENVIRONMENT_VARIABLE, self.username) |
| 65 | + self.with_env(ADMIN_PASSWORD_ENVIRONMENT_VARIABLE, self.password) |
| 66 | + # legacy env vars (<= 26.0.0) |
60 | 67 | self.with_env("KEYCLOAK_ADMIN", self.username)
|
61 | 68 | self.with_env("KEYCLOAK_ADMIN_PASSWORD", self.password)
|
62 | 69 | # Enable health checks
|
@@ -89,7 +96,8 @@ def _readiness_probe(self) -> None:
|
89 | 96 | response = requests.get(f"{self.get_url()}/health/ready", timeout=1)
|
90 | 97 | response.raise_for_status()
|
91 | 98 | if _DEFAULT_DEV_COMMAND in self._command:
|
92 |
| - wait_for_logs(self, "Added user .* to realm .*") |
| 99 | + wait_for_logs(self, "started in \\d+\\.\\d+s") |
| 100 | + wait_for_logs(self, "Created temporary admin user|Added user '") |
93 | 101 |
|
94 | 102 | def start(self) -> "KeycloakContainer":
|
95 | 103 | super().start()
|
|
0 commit comments