我正在尝试通过docker编辑standalone.xml并尝试添加,但是密钥斗篷正在使用其standalone.xml
。但是我能够看到standalone.xml文件中的更改。我需要在standalone.xml文件中添加这一行
<provider>module:org.keycloak.examples.event-sysout</provider>
还尝试了热部署,但随后无法获取第三方库代码
答案 0 :(得分:4)
首先,似乎默认情况下在docker容器中使用了standalone-ha.xml。您可以在/opt/jboss/tools/docker-entrypoint.sh中找到它。 其次,我认为在更改配置文件后,您必须重新启动keycloak服务器(容器)。
不确定“动态”是什么意思。但是,在本地修改文件并构建自定义docker映像会更加容易。 Dockerfile可能看起来像:
FROM jboss/keycloak:6.0.1
ADD <path on your system>/standalone-ha.xml /opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
答案 1 :(得分:1)
可能会晚一点。但我发现您可以在dockerfile上进行编辑。
FROM quay.io/keycloak/keycloak:11.0.0
RUN sed -i -E "s/(<staticMaxAge>)2592000(<\/staticMaxAge>)/\1\-1\2/" /opt/jboss/keycloak/standalone/configuration/standalone.xml
RUN sed -i -E "s/(<cacheThemes>)true(<\/cacheThemes>)/\1false\2/" /opt/jboss/keycloak/standalone/configuration/standalone.xml
RUN sed -i -E "s/(<cacheTemplates>)true(<\/cacheTemplates>)/\1false\2/" /opt/jboss/keycloak/standalone/configuration/standalone.xml
RUN sed -i -E "s/(<staticMaxAge>)2592000(<\/staticMaxAge>)/\1\-1\2/" /opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
RUN sed -i -E "s/(<cacheThemes>)true(<\/cacheThemes>)/\1false\2/" /opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
RUN sed -i -E "s/(<cacheTemplates>)true(<\/cacheTemplates>)/\1false\2/" /opt/jboss/keycloak/standalone/configuration/standalone-ha.xml
ref:https://github.com/anthonny/kit-keycloak-theme/blob/master/Dockerfile
答案 2 :(得分:1)
你不能在没有 jboss-cli 的 docker 镜像上替换或覆盖 standalone-ha.xml/standalone.xml。只需要创建一个 sh 文件并放入 startup-script 文件夹中。在初始化期间,它将启动并配置您的文件。
keycloak-cli
embed-server --server-config=standalone-ha.xml --std-out=echo
batch
/subsystem=keycloak-server:list-add(name=providers, value=module:org.keycloak.examples.event-sysout)
run-batch
stop-embedded-server
Dockerfile
FROM jboss/keycloak:latest
COPY keycloak.cli /opt/jboss/startup-scripts/keycloak.cli
答案 3 :(得分:-1)
您应该转到正在运行的docker容器并在其中进行更改。 最好的是,使用像Kitematic https://kitematic.com/
这样的docker管理器选择正在运行的keycloak容器,单击EXEC图标,cd keycloak / standalone / configuration,vi standalone.xml,:wq退出,通过Kitematic重新启动Docker映像,应该可以工作