在新版本的Keycloak(>=18.0.0),您需要启用“scripts”功能来构建实例。
我将使用环境变量完成此操作:
...
ENV KC_FEATURES=account-api,account2,authorization,client-policies,impersonation,docker,scripts,upload_scripts
RUN /opt/keycloak/bin/kc.sh build
...
如果有人感兴趣,这是完整的Dockerfile用于构建keycloak镜像:
FROM quay.io/keycloak/keycloak:18.0.0 as builder
ENV KC_HEALTH_ENABLED=true
ENV KC_METRICS_ENABLED=true
ENV KC_FEATURES=account-api,account2,authorization,client-policies,impersonation,docker,scripts,upload_scripts
ENV KC_DB=postgres
RUN curl -sL https://github.com/aerogear/keycloak-metrics-spi/releases/download/2.5.3/keycloak-metrics-spi-2.5.3.jar -o /opt/keycloak/providers/keycloak-metrics-spi-2.5.3.jar
RUN /opt/keycloak/bin/kc.sh build
USER root
RUN chown root:root -R /opt/keycloak
FROM quay.io/keycloak/keycloak:18.0.0
COPY --from=builder --chown=keycloak:root /opt/keycloak /opt/keycloak
WORKDIR /opt/keycloak
ENTRYPOINT ["/opt/keycloak/bin/kc.sh", "--verbose", "start", "--import-realm", "--http-relative-path=/auth"]
您还可以将功能作为参数传递:--features=
[更新] 不幸的是,从版本18开始,keycloak取消了从管理员上传JS脚本的支持。因此,您需要将它们部署为.jar(zip)文件。这样做是可行的,但会使JS模块的开发和测试变慢。
有关更多详细信息,请参见启用/禁用功能文档。
.zip
文件中所有内容都已存在。但是在Keycloak仪表板中没有看到策略。 - Noah Kreiger