[英]Keycloak in docker container + MySQL on host gives [org.keycloak.services] (ServerService Thread Pool — 62) Failed to connect to database
[英]Keycloak Docker container does not connect to MySQL database
I am trying to set up a Keycloak server inside a Docker container, and I wish it to utilize a MySQL database stored on the host machine, but I want this database to be managed by a MySQL instance that is also running inside a Docker container. 但是,我無法讓它發揮作用。
到目前為止,我已經嘗試了以下方法:
# Create network for keycloak
docker network create edci-network
# First start up MySQL server…
docker run \
--name edci-keycloak-mysql \
-d \
--net edci-network \
-e MYSQL_DATABASE=edci-keycloak \
-e MYSQL_USER=edci-keycloak \
-e MYSQL_PASSWORD=password \
-v /path/to/local/database:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
mysql
# … then run Keycloak with token exchange enabled.
docker run \
--name edci-keycloak \
-d \
-p 9000:8080 \
--net edci-network \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-e DB_ADDR=edci-keycloak-mysql \
-e DB_PASSWORD=password \
-e JAVA_OPTS_APPEND="
-Dkeycloak.profile.feature.token_exchange=enabled
-Dkeycloak.profile.feature.admin_fine_grained_authz=enabled
" \
quay.io/keycloak/keycloak:15.0.2
但是,Keycloak 日志宣稱
使用 H2 數據庫
當服務器啟動時。 我在這里做錯了什么? Keycloak Docker Hub頁面上的 MySQL 示例也無法正常工作。
請注意,使用 Docker Compose 不是一個選項,因此不考慮依賴它的答案。 感謝您的任何幫助。
Keycloak 容器日志: https://pastebin.com/b56cmxBJ 。
您沒有使用預定義的值(例如 Keycloak 容器需要數據庫名稱keycloak
),因此您需要顯式配置所有數據庫詳細信息(環境變量DB_*
):
# Create network for keycloak
docker network create edci-network
# First start up MySQL server…
docker run \
--name edci-keycloak-mysql \
-d \
--net edci-network \
-e MYSQL_DATABASE=edci-keycloak \
-e MYSQL_USER=edci-keycloak \
-e MYSQL_PASSWORD=password \
-v /path/to/local/database:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
mysql
# … then run Keycloak with token exchange enabled.
docker run \
--name edci-keycloak \
-d \
-p 9000:8080 \
--net edci-network \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-e DB_VENDOR=mysql \
-e DB_ADDR=edci-keycloak-mysql \
-e DB_DATABASE=edci-keycloak \
-e DB_USER=edci-keycloak \
-e DB_PASSWORD=password \
-e JAVA_OPTS_APPEND="
-Dkeycloak.profile.feature.token_exchange=enabled
-Dkeycloak.profile.feature.admin_fine_grained_authz=enabled
" \
quay.io/keycloak/keycloak:15.0.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.