Keycloak w / Postgres не запускается при запуске - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь запустить Keycloak w / Postgres локально, используя docker.

$ docker network create keycloak-network
$ docker volume create pgdata
$ docker run -d -p 127.0.0.1:5432:5432 --name postgres --net keycloak-network -e POSTGRES_DB=keycloak -e POSTGRES_USER=keycloak -e POSTGRES_PASSWORD=password -v pgdata:/var/lib/postgresql/data postgres
$ docker run --name keycloak --net keycloak-network -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin jboss/keycloak

Сбой при сборке Keycloak.

13: 51:13,388 ОШИБКА [org.jboss.msc.service.fail] (Пул потоков ServerService - 61) MSC000001: Не удалось запустить службу jboss.deployment.unit. "Keycloak-server.war" .undertow-deploy: org.jboss.msc.service.StartException в службе jboss.deployment.unit. "keycloak-server.war" .undertow-deploy: java.lang.RuntimeException: RESTEASY003325: Не удалось создать общедоступное приложение org.keycloak.services.resources.KeycloakApplication (javax.servlet.ServletContext, org.jboss.resteasy.core.Dispatcher) в org.wildfly.extension.undertow.deployment.UndertowDeploymentService $ 1.run (UndertowDeploymentService.java:81) в java.util.concurrent.Executors $ RunnallAdapitter: 511) в java.util.concurrent.FutureTask.run (FutureTask.java:266) в org.jboss.threads.ContextClassLoaderSavingRunnable.run (ContextClassLoaderSavingRunnable.java:35) в org.jbosshread.xecutor.safeRun (EnhancedQueueExecutor.java:1982) в org.jboss.threads.EnhancedQueueExecutor $ ThreadBody.doRunTask (EnhancedQueueExecutor.java:1486) в org.jboss.threads.EnhancedQueueexjj.lang.Thread.run (Thread.java:748) в org.jboss.threads.JBossThread.run (JBossThread.java:485) Причина: java.lang.RuntimeException: RESTEASY003325: Не удалось создать общедоступные org.keycloak.services.resources.KeycloakApplication (javax.servlet.ServletContext, org.jboss.resteasy.core.Dispatcher) в org.jboss.resteasy.core.ConstructorInjectorImpl.construct (ConstructorInjectorImpl.java:164) в orgasyjasy.reste..createProviderInstance (ResteasyProviderFactory.java:2750) в org.jboss.resteasy.spi.ResteasyDeployment.createApplication (ResteasyDeployment.java:364) в org.jboss.resteasy.spi.ResteasyDeployment.jboss.resteasy.spi.ResteasyDeployment.start (ResteasyDeployment.java:89) вorg.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init (ServletContainerDispatcher.java:119) в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init (http.servlet.core.LifecyleInterceptorInvocation.proceed (LifecyleInterceptorInvocation.java:117) в org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init (RunAsLifecycleInterceptor.java:78.Java: 103) в io.undertow.servlet.core.ManagedServlet $ DefaultInstanceStrategy.start (ManagedServlet.java:303) в io.undertow.servlet.core.ManagedServlet.createServlet (ManagedServlet.java:14underw.let.let.to.o.o..core.DeploymentManagerImpl $ 2.call (DeploymentManagerImpl.java:583) по адресу io.undertow.servlet.core.DeploymentManagerImpl $ 2.call (DeploymentManagerImpl.java:554) по адресу io.undertow.servlet.core.ServTackupTecupSecureStextSquestAction.java:42) по адресу io.undertow.servlet.core.ContextClassLoaderSetupAction $ 1.call (ContextClassLoaderSetupAction.java:43) по адресу org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambdaConk_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_5_0_5_5_5_0_0_0_5_0_0_0_0_0_0_0_0_0_дек.в org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502) в org.wildfly.extension.undertow.deployment.Werfo1502) в org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService $ UndertowThreadSetupAction.lambda $ create $ 0 (UndertowDeploymentInfoService.java:1502) вorg.wildfly.extension..undertow.deployment.UndertowDeploymentService.startContext (UndertowDeploymentService.java:97) в org.wildfly.extension.undertow.deployment.UndertowDeploymentService $ 1.run (UndertowDeploymentService.java:78) ... еще 8-й раз вызывается из-за того, что вызван:: Не удалось подключиться к базе данных на org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection (DefaultJpaConnectionProviderFactory.java:382) в org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lazyInit (LiquibaseDBLockProvider.java:65)в org.keycloak.connections.jpa.updater.liquibase.lock.LiquibaseDBLockProvider.lambda $ waitForLock $ 0 (LiquibaseDBLockProvider.java:97) в org.keycloak.models.utils.KeycloakModelUtils.sapend(c): 144) в org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction (KeycloakModelUtils.java:227) в org.keycloak.services.resources.KeycloakApplication. (KeycloakApplication.java:137) в солнечной обратной связи.Метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) в java.lanst.structor (Constructor)org.jboss.resteasy.core.ConstructorInjectorImpl.construct (ConstructorInjectorImpl.java:152) ... еще 31 Причина: javax.naming.NameNotFoundException: источники данных / KeycloakDS - служба jboss.naming.context.java.jboss.dasasrces.KeycloakDS в org.jboss.as.naming.ServiceBasedNamingStore.lookup (ServiceBasedNamingStore.java:106) в org.jboss.as.naming.NamingContext.lookup (NamingContext.java:207) в org.jboss.as.naming.NamingContext.lookup (NamingContext.java:184) в org.jboss.as.naming.InitialContext $ DefaultInitialContext.lookup (InitialContext.java:239) в org.jboss.as.naming.NamingContext.lookup (NamingContext.java:19)в org.jboss.as.naming.NamingContext.lookup (NamingContext.java:189) в javax.naming.InitialContext.lookup (InitialContext.java:417) в javax.naming.InitialContext.lookup (InitialContext.java:417) вorg.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory.getConnection (DefaultJpaConnectionProviderFactory.java:375) ... еще 43

Запуск Keycloak с экземпляром по умолчанию h2 работает отлично, поэтому я могу толькопредположим, что это связано с подключением Postgres

1 Ответ

0 голосов
/ 15 июня 2019

Похоже, клавиатура не может подключиться к базе данных

Caused by: java.lang.RuntimeException: Failed to connect to database

Мне проще использовать docker-compose для запуска нескольких сервисов. Вот мой docker-compose.yml для postgres & keycloak, который я использую локально


version: "3"
services:
  keycloak:
    image: jboss/keycloak
    depends_on:
      - postgres
    environment:
      - KEYCLOAK_USER=admin
      - KEYCLOAK_PASSWORD=password
      - KEYCLOAK_HTTP_PORT=8484
      - TEMPLATE_MODE=true
      - DB_VENDOR=POSTGRES
      - DB_ADDR=postgres
    ports:
      - 8484:8484
      - 8485:80
      - 8486:8080
  postgres:
    image: postgres:11.2
    volumes:
      - data-volume3:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=keycloak
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=keycloak
    ports:
      - 7654:5432
volumes:
  data-volume3:

...