keycloak docker安装问题



我使用以下docker-compose来启动mysql和keycloak容器。我需要使用mysql的keycloak。当我使用下面的docker-compose它显示下面的错误。它被卡在'开始keycloak部署'或'绑定数据源KeycloakDS'

我在ubuntu上安装它。

注意:docker compose(下面提到的)是我执行的所有内容。我不太确定我是否需要mysql jdbc连接器安装?如果是,如何在docker中安装keycloak的mysql连接器?我知道如何在非docker环境中配置它。

非常感谢你在这个问题上的帮助/建议。

误差

keycloak_1  | 17:10:38,378 INFO  [org.jboss.modcluster] (ServerService Thread Pool -- 63) MODCLUSTER000032: Listening to proxy advertisements on /224.0.1.105:23364
keycloak_1  | 17:10:40,864 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-2) WFLYDS0013: Started FileSystemDeploymentService for directory /opt/jboss/keycloak/standalone/deployments
keycloak_1  | 17:10:54,907 **INFO  [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0027: Starting deployment of "keycloak-server.war" (runtime-name: "keycloak-server.war")
keycloak_1  | 17:15:21,570 ERROR [org.jboss.as.controller.management-operation] (Controller Boot** Thread) WFLYCTL0348: Timeout after [300] seconds waiting for service container stability. Operation will roll back. Step that first updated the service container was 'add' at address '[
or sometime at
keycloak_1  | 17:58:57,769 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-1) WFLYDS0013: Started FileSystemDeploymentService for directory /opt/jboss/keycloak/standalone/deployments
keycloak_1  | 17:58:57,796 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "keycloak-server.war" (runtime-name: "keycloak-server.war")
keycloak_1  | 17:58:58,663 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0006: Undertow HTTPS listener https listening on 0.0.0.0:8443
keycloak_1  | 17:58:58,702 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0001: Bound data source [java:jboss/datasources/ExampleDS]
keycloak_1  | 17:58:58,711 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) WFLYJCA0001: Bound data source [java:jboss/datasources/KeycloakDS]

docker-compose.yml

version: '3.7'
services:
# Database
db:
image: mysql:8.0.23
volumes:
- /var/lib/mysql_data:/var/lib/mysql
- ./config-file.cnf:/etc/mysql/conf.d/config-file.cnf
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: MYDB
MYSQL_USER: testusr
MYSQL_PASSWORD: password
expose:
- '3306'
ports:
- '3306:3306'
networks:
- mysqlnet
# Keycloak
keycloak:
depends_on:
- db
image: jboss/keycloak:12.0.2
restart: always
environment:
DB_VENDOR: MYSQL
DB_DATABASE: KEYCLOAK
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
JDBC_PARAMS: "connectTimeout=30000"
expose:
- '8181'
ports:
- '8181:8080'
networks:
- mysqlnet
networks:
mysqlnet:

docker-compose更新。但它也陷入了困境。我错过什么了吗?

keycloak_1  | 16:30:40,800 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 64) WFLYCLINF0002: Started realms cache from keycloak container
keycloak_1  | 16:30:40,803 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 67) WFLYCLINF0002: Started users cache from keycloak container
keycloak_1  | 16:30:40,802 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 62) WFLYCLINF0002: Started keys cache from keycloak container
keycloak_1  | 16:30:40,803 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 68) WFLYCLINF0002: Started authorization cache from keycloak container
keycloak_1  | 16:30:41,162 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0273: Excluded subsystem webservices via jboss-deployment-structure.xml does not exist.
keycloak_1  | 16:33:49,638 INFO  [org.keycloak.services] (ServerService Thread Pool -- 67) KC-SERVICES0001: Loading config from standalone.xml or domain.xml

docker-compose

version: '3'
volumes:
mysql_data:
services:
mysql:
image: mysql:8.0.23
volumes:
- mysql_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: password
expose:
- 3306
ports:
- 3306:3306
keycloak:
image: jboss/keycloak:12.0.2
restart: always
environment:
DB_VENDOR: MYSQL
DB_ADDR: mysql
DB_DATABASE: keycloak
DB_USER: keycloak
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: password
JDBC_PARAMS: "connectTimeout=1000,useSSL=false"
ports:
- 8080:8080
expose:
- 8080
depends_on:
- mysql

配置中明显的问题:

1)。DB凭证不匹配,应该是:

db:
...
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: MYDB
MYSQL_USER: testusr
MYSQL_PASSWORD: password
...
keycloak:
...
environment:
DB_VENDOR: MYSQL
DB_DATABASE: MYDB
DB_USER: testusr
DB_PASSWORD: password
...

2)。您没有将Keycloak指向DB服务:

db:
...
keycloak:
...
environment:
DB_ADDR: db
...

这些都是明显的错误,但可能还有更多的问题。

我将从容器中暴露端口8443而不是8080 -它启用了带有自签名证书的https。

最新更新