簡體   English   中英

Keycloak Docker 容器未連接到 MySQL 數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM