Keykloack docker 启用功能

问题描述 投票:0回答:1

我在启用自定义 Keycloak Docker 映像中的某些功能时遇到问题,特别是

scripts
impersonation
passkeys
。尽管遵循了推荐的步骤,但这些功能在最终图像中不可用。我所做的:

  • 在我的 Dockerfile 中使用了多阶段构建。
  • 确保所有阶段的 Keycloak 版本一致。
  • 通过设置
    KC_FEATURES=scripts,impersonation,passkeys
    激活预览功能。

我的 Dockerfile 的简化版本:


# Stage 1: Building Keycloak with features
FROM quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} AS builder
ENV KC_FEATURES=scripts,impersonation,passkeys
RUN /opt/keycloak/bin/kc.sh build

# Stage 2: Final image
FROM quay.io/keycloak/keycloak:${KEYCLOAK_VERSION}
COPY --from=builder /opt/keycloak/providers/ /opt/keycloak/providers/

CMD ["/opt/keycloak/bin/kc.sh", "start", "--optimized", "--cache=ispn", "--verbose"]

问题:

  • 当我在运行的容器中检查
    /opt/keycloak/providers/
    时,它只包含README.md。
  • 当我运行
    /opt/keycloak/bin/kc.sh show-config
    时,显示功能已激活:
    kc.features = scripts,impersonation,passkeys (ENV)
  • 但是,日志中已安装的功能并未列出附加功能:
    Installed features: [agroal, cdi, hibernate-orm, jdbc-mysql, keycloak, logging-gelf, micrometer, narayana-jta, reactive-routes, resteasy-reactive, resteasy-reactive-jackson, smallrye-context-propagation, smallrye-health, vertx]
  • 管理控制台中缺少“脚本映射器”选项。

有人遇到过这个问题或者知道如何在最终图像中正确包含这些功能吗?

docker build dockerfile keycloak
1个回答
0
投票

/opt/keycloak/providers/
是自定义提供程序(JAR 文件)的路径,
/opt/keycloak/lib/quarkus/
路径是包含构建后内容的目录,因此

# Stage 1: Building Keycloak with features
FROM quay.io/keycloak/keycloak:${KEYCLOAK_VERSION} AS builder

# If you have custom providers
COPY /service-providers-jars /opt/keycloak/providers/ 

ENV KC_FEATURES=scripts,impersonation,passkeys
RUN /opt/keycloak/bin/kc.sh build

# Stage 2: Final image
FROM quay.io/keycloak/keycloak:${KEYCLOAK_VERSION}
# copy the whole /opt/keycloak/
COPY --from=builder /opt/keycloak/ /opt/keycloak/

CMD ["/opt/keycloak/bin/kc.sh", "start", "--optimized", "--cache=ispn", "--verbose"]

或者,如果您愿意,

COPY
行可以位于 for

COPY --from=builder /opt/keycloak/providers/ /opt/keycloak/providers/
COPY --from=builder /opt/keycloak/lib/quarkus/ /opt/keycloak/lib/quarkus/
© www.soinside.com 2019 - 2024. All rights reserved.