【问题标题】:keycloak docker installation issue with MySQLMySQL的keycloak docker安装问题
【发布时间】:2021-01-22 17:41:35
【问题描述】:

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

我在 ubuntu 上安装它。

注意:docker compose(如下所述)是我正在执行的全部内容。我不太确定是否需要安装 mysql jdbc 连接器?如果是,如何在 docker 中为 keycloak 安装 mysql 连接器?我知道如何为非 docker env 配置它。

感谢您对此问题的帮助/建议。

错误

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

码头工人撰写

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

【问题讨论】:

    标签: mysql docker docker-compose keycloak


    【解决方案1】:

    您的配置中存在明显问题:

    1.) 数据库凭据不匹配,应该是:

      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:
    ...
      keycloak:
    ...
        environment:
            DB_ADDR: db
    ...
    

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

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

    【讨论】:

    • 非常感谢您的建议。我相应地更正了 docker compose 。之后,它在部署和数据源之前移动(之前被卡住了),但它再次卡在“从独立文件加载配置” keycloak_1 | 16:33:49,638 INFO [org.keycloak.services](ServerService 线程池 -- 67)KC-SERVICES0001:从standalone.xml 或 domain.xml 加载配置
    • @somspeaks Keycloak 真的不坚持吗? Keycloak 是一个缓慢的 Java 野兽,尤其是在它启动时,所以请稍等。而且它只是INFO 消息,而不是ERROR,所以这不是问题。
    • 谢谢@JanGoraj,终于成功了。在您的更正之后,我意识到我正在使用的 ubuntu 实例非常小,我将其更改为更大的实例并且它可以工作。谢谢
    猜你喜欢
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2023-04-04
    • 2017-12-27
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多