我正在嘗試在 Docker 容器內設定 Keycloak 服務器,我希望它利用存盤在主機上的 MySQL 資料庫,但我希望該資料庫由也在 Docker 容器內運行的 MySQL 實體管理。但是,我無法讓它發揮作用。
到目前為止,我已經嘗試了以下方法:
# 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 。
uj5u.com熱心網友回復:
您沒有使用預定義的值(例如 Keycloak 容器keycloak需要DB name ),因此您需要DB_*明確配置所有 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372009.html
