【发布时间】:2022-01-07 21:46:10
【问题描述】:
我正在尝试在 Docker 容器内设置 Keycloak 服务器,我希望 它利用存储在主机上的 MySQL 数据库,但我想要这个 由也在内部运行的 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 数据库
在服务器启动时。我在这里做错了什么? MySQL 示例 Keycloak Docker Hub 页面上的也无法正常工作。
请注意,使用 Docker Compose 不是一种选择,所以答案依赖于它 不考虑。感谢您的帮助。
Keycloak 容器日志:https://pastebin.com/b56cmxBJ。
【问题讨论】:
-
你的 docker run for keycloak;有
-e DB_USER=edci-keycloak吗? -
@gohm'c 我也尝试了设置该环境变量,但没有帮助。
-
你需要那个 DB_USER,你能设置
DB_ADDR=<your host primary IP>看看它是否有效吗? -
“主机主IP”是指
kubernetes.docker.internal吗?