我正在尝试在Docker容器中设置Keycloak服务器,并希望它利用存储在主机上的MySQL数据库,但我希望这个数据库由一个也在Docker容器中运行的MySQL实例进行管理。然而,我无法让它正常工作。
到目前为止,我尝试了以下方法:
然而,Keycloak日志在服务器启动时宣布使用H2数据库。我做错了什么? Keycloak Docker Hub页面上的MySQL示例也不能正常工作。请注意,使用Docker Compose不是一个选项,因此依赖它的答案将不被考虑。感谢您的任何帮助。
Keycloak容器日志:https://pastebin.com/b56cmxBJ。
到目前为止,我尝试了以下方法:
# 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。
-e DB_USER=edci-keycloak
这个参数? - gohm'cDB_ADDR=<你的主机IP地址>
,然后看看它是否起作用? - gohm'ckubernetes.docker.internal
这样的东西吗? - SeSodesa