Keycloak配置忽略env变量

时间:2018-03-22 12:37:20

标签: keycloak

您好我尝试在Docker容器中启动一个独立的keycloak Server。

我设置了一个" env"生产变量,本地或者测试服务器连接到正确的MySQL数据库。

但是在AWS上启动它似乎忽略了env vars。 Localy Dockermachine工作正常。

以下是配置设置:

在standalone.xml中:

...for (empty) local
<datasource jndi-name="java:/jboss/datasources/KeycloakMysqlDS-default" pool-name="KeycloakMysqlDS-default" enabled="true">
...for production
<datasource jndi-name="java:/jboss/datasources/KeycloakMysqlDS-production" pool-name="KeycloakMysqlDS-production" enabled="true">
...
<provider name="default" enabled="true">
  <properties>
    <property name="dataSource" value="java:jboss/datasources/KeycloakMysqlDS-${env.env}"/>
....

&#39; env&#39; var经验证设置为&#34;生产&#34;在AWS上,在本地清空,并在本地dockermachine更改中做出反应。

刚开始使用AWS dockermachine时,它使用的是默认值而不是{env.env} var。

之前有人看过这种行为吗?或者知道如何纠正它?

提前致谢

格里

更新: 那么错误不会在启动时发生。 它发生在几分钟后:

...
WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (JCA PoolFiller) IJ000610: Unable to fill pool: java:/jboss/datasources/KeycloakMysqlDS-default: ... Connection refused.
...

所以它可能不是env var的问题。 相反,Keycloak似乎试图打开与已设置数据源的连接......这是真的吗?

1 个答案:

答案 0 :(得分:0)

完成另一个问题......

Keycloak默认出价到另一个IP。必须将ip设置为0.0.0.0才能在Docker容器内工作。

在configuration.xml中......

  <interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
            <!--<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>-->
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
            <!--<inet-address value="${jboss.bind.address:127.0.0.1}"/>-->
        </interface>
    </interfaces>
相关问题