Getting database connection error

I have shared a docker compose file below but we run docker compose we are getting below error.

[org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: URL format error; must be “jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name }[;key=value…]” but is “jdbc:postgresql://postgres/keycloak” [90046-220]

Below I have share the docker-compose.yml file

version: ‘3’

services:
keycloak:
image: keycloak/keycloak
command: start --optimized
environment:
- KEYCLOAK_ADMIN=admin
- KEYCLOAK_ADMIN_PASSWORD=admin
- KC_DB_URL=jdbc:postgresql://postgres/keycloak
- KC_DB_USER=keycloak
- KC_DB_PASSWORD=keycloak
- KC_PROXY=edge
- KC_HOSTNAME_STRICT=false
- KC_HTTPS_CERTIFICATE_FILE=/etc/letsencrypt/live/mydomain.net/fullchain.pem
- KC_HTTPS_CERTIFICATE_KEY_FILE=/etc/letsencrypt/live/mydomain.net/privkey.pem
- QUARKUS_HTTP_HOST=0.0.0.0
- KC_HOSTNAME_URL=https://mydomain.net/
ports:
- “8484:8080”
depends_on:
- keycloak-db

keycloak-db:
image: postgres:latest
environment:
- POSTGRES_DB=keycloak
- POSTGRES_USER=keycloak
- POSTGRES_PASSWORD=keycloak
volumes:
- pgdata_keycloak:/var/lib/postgresql/data
ports:
- “5438:5432”
volumes:
pgdata_keycloak:

Following parameters for DB works for me

  KC_DB: postgres
  KC_DB_USERNAME: keycloak
  KC_DB_PASSWORD: keycloak
  KC_DB_URL_HOST: postgres # service name in compose file

or refer below link for jdbc url format

Run it at least once without --optimized in the command line.

1 Like