我正在运行docker桌面版(Windows),并按照此处的说明构建keycloak 17.0.0的docker镜像。构建成功,但在桌面版中运行该镜像时出现错误:
ERROR [org.key.qua.run.cli.ExecutionExceptionHandler] (main) ERROR: Failed to obtain JDBC connection
ERROR [org.key.qua.run.cli.ExecutionExceptionHandler] (main) ERROR: No suitable driver found for jdbc:postgresql://postgres/keycloak
postgres已经在docker桌面版上以默认端口5432和名称“postgres”运行,并创建了keyclock数据库。
以下是我的Dockerfile:
FROM quay.io/keycloak/keycloak-x:latest as builder
ENV KC_METRICS_ENABLED=true
ENV KC_FEATURES=token-exchange
ENV KC_DB=postgres
RUN /opt/keycloak/bin/kc.sh build
FROM quay.io/keycloak/keycloak-x:latest
COPY --from=builder /opt/keycloak/lib/quarkus/ /opt/keycloak/lib/quarkus/
WORKDIR /opt/keycloak
RUN keytool -genkeypair -storepass password -storetype PKCS12 -keyalg RSA -keysize 2048 -dname "CN=server" -alias server -ext "SAN:c=DNS:localhost,IP:127.0.0.1" -keystore conf/server.keystore
ENV KEYCLOAK_ADMIN=admin
ENV KEYCLOAK_ADMIN_PASSWORD=admin
ENV KC_DB_URL='jdbc:postgresql://postgres/keycloak'
ENV KC_DB_USERNAME=postgres
ENV KC_DB_PASSWORD=postgres
ENV KC_HOSTNAME=localhost:8443
ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "start"]
从文档中了解到,设置"KC_DB=postgres"后,构建应该包含似乎缺失的postgres驱动程序。
可以有人告诉我这里有什么问题吗?谢谢。