【问题标题】:HOCON not substituting environment variablesHOCON 不替换环境变量
【发布时间】:2015-04-15 16:35:01
【问题描述】:

我已阅读https://github.com/typesafehub/config/blob/master/HOCON.md#substitution-fallback-to-environment-variables 上有关回退到环境变量的文档。我的理解是它会拾取任何 envars。因此,例如,如果我能够从 shell 执行 echo $HOSTNAME 并看到非空响应,那么 HOCON 也应该这样做。

在我的 application.conf 中有一行

akka.remote.netty.tcp.hostname = ${HOSTNAME}

但是,我的应用对此不满意,无法启动。

/conf/application.conf: 9: Could not resolve substitution to a value:  ${HOSTNAME}

这是用户问题吗?外壳问题?我能够以用户身份登录并回显 $HOSTNAME

标记这个 scala 和 akka,因为该用户群可能对 HOCON 的曝光率最高

【问题讨论】:

    标签: scala akka hocon


    【解决方案1】:

    HOCON 没有选择 envar 的原因是我的应用程序作为 linux 服务(Centos 6.5)运行,它清除了大多数环境变量。

    有关问题的相关描述,请参阅https://unix.stackexchange.com/questions/44370/how-to-make-unix-service-see-environment-variables

    【讨论】:

      【解决方案2】:

      这是在黑暗中拍摄的,但是您使用的是旧版本的 typesafe-config 吗?也许它是一个较新的功能?正如您所描述的那样,该功能似乎已被宣传,但如果您将 typesafe-config 作为临时依赖项(例如来自 akka)引入,那么您可能会获得旧版本。

      如果您删除 .conf 文件中的替换(因此解析成功)然后打印出 ConfigFactory.systemEnvironment() 的内容会发生什么?供参考:http://typesafehub.github.io/config/latest/api/com/typesafe/config/ConfigFactory.html#systemEnvironment--

      【讨论】:

        【解决方案3】:

        HOSTNAME 不是环境变量。这是一个 bash 内部变量。详情请见https://superuser.com/questions/132489/hostname-environment-variable-on-linux

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-26
          • 2014-06-17
          • 2019-09-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多