当前位置: 首页 > 知识库问答 >
问题:

错误 OIDC 服务器在使用泊坞窗启动夸库时在“Quarkus.oidc.auth-服务器网址”网址上不可用

凤棋
2023-03-14

当我在docker compose中使用Quarkus和Keycloak时,我遇到了一个非常令人困惑的问题。当我设置环境变量来覆盖dev配置(又名quarkus.oidc.auth-server-url和quarkus.datasource.jdbc.url)并尝试运行docker-compose文件时,出现了一条错误消息。它说我的验证服务器url不正确,但我在我的验证服务器url中没有看到打字错误或错误。

错误消息:

dbk-core    | exec java -Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager -XX:+ExitOnOutOfMemoryError -cp . -jar /deployments/app.jar
dbk-core    | __  ____  __  _____   ___  __ ____  ______ 
dbk-core    |  --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
dbk-core    |  -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
dbk-core    | --\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
dbk-core    | 11:32:08 ERROR [io.qu.application] (main) Failed to start application (with profile prod): io.quarkus.oidc.OIDCException: OIDC server is not available at the 'quarkus.oidc.auth-server-url' URL. Please make sure it is correct. Note it has to end with a realm value if you work with Keycloak, for example: 'https://localhost:8180/auth/realms/quarkus'
..........
dbk-core    |   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
dbk-core    |   at java.base/java.lang.Thread.run(Thread.java:834)
dbk-core    | Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: keycloak/172.24.0.3:8180
dbk-core    | Caused by: java.net.ConnectException: Connection refused
dbk-core    |   at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

My docker-compose.yml

services:
database:
build:
   context: ./db-init
   dockerfile: Dockerfile.db
container_name: dbk-database
ports:
- 5432:5432
volumes:
- "$HOME/databases/postgres:/var/lib/postgresql/data"
keycloak:
 image: quay.io/keycloak/keycloak:latest
 container_name: dbk-keycloak
 environment:
  DB_VENDOR: POSTGRES
  DB_ADDR: database
  DB_DATABASE: keycloak_database
  DB_USER: keycloak
  DB_SCHEMA: public
  DB_PASSWORD: keycloak
  KEYCLOAK_USER: admin
  KEYCLOAK_PASSWORD: admin
  ports:
  - 8180:8080
  depends_on:
  - database
core:
 image: registry.gitlab.com/baudoku/dbk-core:dev
 container_name: dbk-core
 environment:
   QUARKUS_OIDC_AUTH_SERVER_URL: http://keycloak:8180/auth/realms/dbk
   QUARKUS_DATASOURCE_JDBC_URL: jdbc:postgresql://database:5432/dbk_core_database
 depends_on:
 - database
 - keycloak
 ports:
 - 8080:8080

我的Quarkusapplication.properties:

quarkus.oidc.auth-server-url=http://localhost:8180/auth/realms/dbk
quarkus.oidc.client-id=dbk-core
quarkus.oidc.credentials.secret=3a17e7e8-0099-49d9-8e33-d0eb954daba0

quarkus.datasource.db-kind = postgresql
quarkus.datasource.username = core
quarkus.datasource.password = core
quarkus.datasource.jdbc.url = jdbc:postgresql://localhost:5432/dbk_core_database

当我使用 Docker 和我的夸库应用程序手动启动键盘锁服务时,./mvnw Quarkus:dev 一切都在工作。

共有1个答案

姬英耀
2023-03-14

我自己解决了问题:)。问题是我的quarkus.oidc.auth-server-url,因为我使用了错误的端口。解决方案是使用keycloak服务的内部端口,而不是公开端口。

正确的auth-server-url是:超文本传输协议://keycloak: 8080/auth/realms/dbk

正确的泊坞站撰写:

core:
 image: registry.gitlab.com/baudoku/dbk-core:dev
 container_name: dbk-core
 environment:
   QUARKUS_HTTP_PORT: 7000
   QUARKUS_OIDC_AUTH_SERVER_URL: http://keycloak:8080/auth/realms/dbk
   QUARKUS_DATASOURCE_JDBC_URL: jdbc:postgresql://database:5432/dbk_core_database
 depends_on:
 - database
 - keycloak
 ports:
 - 8080:7000
 类似资料:
  • 我刚刚安装了Ruby193和Ruby200,在创建了一个新的应用程序之后,我正在尝试加载服务器,但是我得到了下面的错误。 我用gem'sqlite3'替换了sqlite3 gem,'~ 有人知道怎么修吗? Gemfile是 Bundle Show提供捆绑包中包含的宝石: actionmailer(3.2.13) actionpack(3.2.13) activemodel(3.2.13) acti

  • 我是库伯内特斯的新手,我正在学习。我有我的视窗8机器,我在那里安装了瓦格兰特。使用流浪者,我运行ubuntu虚拟机,在虚拟机中,我运行3个docker容器。 流浪者档案: 容器 in Ubuntu VM : 在同一个VM中,现在我安装了迷你库贝和库贝特,如此链接中所述 迷你库贝版本: kubectl版本: 迷你库贝在我的 ubuntu VM 中成功启动。我已经创建了 文件。 使用这个yml文件,我

  • 在启动节点管理器之后,当我要启动startWeblogic时。sh发生这种情况时,服务器无法启动。(用户名、密码正确) 以行开始WLS:home/app/oracle/java/jdk1.8.0_171/bin/java-server-Xms256m-Xmx512m-XX:CompileThreshold=8000-cp/home/12c/app/oracle/product/12.2.1/wls

  • 什么会阻止 命令完成?它永远不会返回到命令提示符或报告任何类型的错误。相反,它反复在“新”,“已分配”,“就绪”和“开始”之间切换。 这是命令: 这是来自“DevOps 2.1工具包 - Docker群”,维克多·法西奇的一本书,我遇到了一个我无法克服的问题...... 我试图在一群三个节点上运行一个反向代理服务,所有节点都在LinuxMint系统上本地运行,而< code>docker serv

  • 在“第2.2节 浏览托管项目”一节介绍图形文件差异比较时,需要给出一个网址,但这个网址很长。如下: https://github.com/cameronmcefee/Image-Diff-View-Modes/commit/8e95f70c9c47168305970e91021072673d7cdad8 很自然地想到了Google短网址服务,于是由上面的长网址生成出一个短小精干的网址:http:/

  • 当我的网卡连接到网络A时,我正在启动我的RMI服务器。运行我的客户端按预期成功并打印“Hello World”。一旦我将网络连接更改为网络B(无需重新启动RMI服务器!)我无法再连接到服务器。服务器和客户端总是在同一台主机上运行,所以使用localhost地址就足够了。 服务器: 客户: 例外是: 它指的是在连接到网络A时分配给我的IP地址。注册表查找按预期工作,只有对的调用失败,但有上述异常。