无法连接到Dockerfile中的Wildfly

我正在创建一个带有官方keycloak docker映像扩展名的自定义Dockerfile。我想更改Web上下文并添加一些自定义提供程序。 这是我的Dockerfile:

FROM jboss/keycloak:7.0.0

COPY startup-config.cli /opt/jboss/tools/cli/startup-config.cli

RUN /opt/jboss/keycloak/bin/jboss-cli.sh --connect --controller=localhost:9990 --file="/opt/jboss/tools/cli/startup-config.cli"

ENV KEYCLOAK_USER=admin
ENV KEYCLOAK_PASSWORD=admin

和startup-config.cli文件:

/subsystem=keycloak-server/:write-attribute(name=web-context,value="keycloak/auth")
/subsystem=keycloak-server/:add(name=providers,value="module:module:x.y.z.some-custom-provider")

不幸的是,我收到这样的错误:

The controller is not available at localhost:9990: java.net.connectexception: WFLYPRT0053: Could not connect to remote+http://localhost:9990. The connection failed: WFLYPRT0053: Could not connect to remote+http://localhost:9990. The connection failed: Connection refused
The command '/bin/sh -c /opt/jboss/keycloak/bin/jboss-cli.sh --connect --controller=localhost:9990 --file="/opt/jboss/tools/cli/startup-config.cli"' returned a non-zero code: 1

这是无效的本地主机问题吗?我应该如何参考管理API?

编辑:我也尝试使用ENTRYPOINT而不是RUN,但是在容器初始化期间发生了相同的错误。

lihonglian26 回答:无法连接到Dockerfile中的Wildfly

WildFly 管理接口在构建 Docker 镜像时不可用。您唯一的选择是以嵌入模式启动 CLI,如此处讨论的 Running CLI commands in WildFly Dockerfile。 更高级的方法是使用 S2I 安装脚本来触发 CLI 命令。

,

您尝试在此处让Wildfly在构建时加载您的自定义配置文件。问题是Dockerfile建立时Wildfly服务器没有运行。

Wildfly实际上已经涵盖了有关自动加载自定义配置的内容,其中内置了对您要执行的操作的支持。您只需要将配置文件放在映像内的“魔术位置”即可。

您需要在此处放置配置文件:

/opt/jboss/startup-scripts/

这样您的Dockerfile如下所示:

FROM jboss/keycloak:7.0.0

COPY startup-config.cli /opt/jboss/startup-scripts/startup-config.cli

ENV KEYCLOAK_USER=admin
ENV KEYCLOAK_PASSWORD=admin

摘录自keycloak documentation

  

使用Dockerfile添加自定义脚本

     

可以通过以下方式添加自定义脚本:   创建自己的Dockerfile:

FROM keycloak 
COPY custom-scripts/ /opt/jboss/startup-scripts/

现在,您可以简单地启动映像,并且keycloak中的内置功能(实际上是Wildfly功能)将在该spedific目录中查找配置,然后尝试将其加载。

本文链接:https://www.f2er.com/3075357.html

大家都在问