【问题标题】:Keycloak Docker DeploymentKeycloak Docker 部署
【发布时间】:2021-01-31 09:53:11
【问题描述】:

我尝试通过 Docker (Docker-Compose) 部署 Keycloak 及其数据库。 它重试 10 次,然后部署失败。过去,同一个 docker-compose.yml 文件对我有用。从那以后没有做过任何操作系统或持续更新。 抛出以下错误和警告:

keycloak            | 09:48:42,070 ERROR [org.jgroups.protocols.TCP] (ServerService Thread Pool -- 60) JGRP000034: cff2ce8f5cdf: failure sending message to e832b25e9785: java.net.SocketTimeoutException: connect timed out
keycloak            | 09:48:45,378 WARN  [org.jgroups.protocols.pbcast.GMS] (ServerService Thread Pool -- 60) cff2ce8f5cdf: JOIN(cff2ce8f5cdf) sent to 05bdb7a4a7f5 timed out (after 3000 ms), on try 0

我的 docker-compose.yml 看起来像这样:

keycloak:
    container_name: keycloak
    image: jboss/keycloak:11.0.2
    ports:
      - 8081:8080
    environment:
      - DB_VENDOR=mariadb
      - DB_ADDR=authenticationDB
      - DB_DATABASE=keycloak
      - DB_USER=keycloak
      - DB_PASSWORD=password
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=admin
      - JGROUPS_DISCOVERY_PROTOCOL=JDBC_PING
      - JGROUPS_DISCOVERY_PROPERTIES=datasource_jndi_name=java:jboss/datasources/KeycloakDS,info_writer_sleep_time=500
    depends_on:
      - authenticationDB

  authenticationDB:
    container_name: authenticationDB
    image: mariadb
    volumes:
      - ./keycloakDB:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: keycloak
      MYSQL_USER: keycloak
      MYSQL_PASSWORD: password
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "--silent"]

我尝试了以下方法:

  1. SSH 进入 Keycloak 的容器并 curl authenticationDB:3306。我有一个 no permission 错误,因此容器可以相互通信。
  2. 检查数据库是否在 DB-Container 内运行,是的,它正在运行。

我的想法不多了。 正常情况下会重试10次,然后成功部署keycloak。

提前致谢, 罗萨里奥

【问题讨论】:

    标签: docker deployment docker-compose mariadb keycloak


    【解决方案1】:

    我会说docker镜像jboss/keycloak:11.0.2不支持JDBC_PING

    $ docker run --rm --entrypoint bash -ti jboss/keycloak:11.0.2 \
      -c 'ls -lah /opt/jboss/tools/cli/jgroups/discovery/'
    total 4.0K
    drwxrwxr-x. 1 jboss root  25 Sep 15 09:01 .
    drwxrwxr-x. 1 jboss root  23 Sep 15 09:01 ..
    -rw-rw-r--. 1 jboss root 611 Sep 15 09:01 default.cli
    

    $  docker run --rm --entrypoint bash -ti jboss/keycloak:12.0.2 \
      -c 'ls -lah /opt/jboss/tools/cli/jgroups/discovery/'
    total 8.0K
    drwxrwxr-x. 1 jboss root  46 Jan 19 07:27 .
    drwxrwxr-x. 1 jboss root  23 Jan 19 07:27 ..
    -rw-rw-r--. 1 jboss root 611 Jan 19 07:27 default.cli
    -rw-rw-r--. 1 jboss root 605 Jan 19 07:27 JDBC_PING.cli
    

    尝试测试新版本。

    【讨论】: