【问题标题】:How can a variable set in the Docker .env-File be used in application.yml?Docker .env-File 中设置的变量如何在 application.yml 中使用?
【发布时间】:2020-10-21 21:31:34
【问题描述】:

我试过了: 在 prod.env 中:HOST_PUBLIC=test.mydomain.com

在 application-prod.yml 中:

jhipster:
...
    mail: 
        from: ...
        base-url: ${HOST_PUBLIC}

变量未被识别,我只是得到 ${HOST_PUBLIC} 作为输出,与 "${HOST_PUBLIC}" 相同。

我还尝试使用反引号 base-url: `${HOST_PUBLIC}`,这导致应用程序崩溃

我只想获取正确的 url 来构建一个 html,然后发送给用户,以更改密码。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
    <p>
        <a th:with="url=(@{|${baseUrl}/#/reset/finish?key=${user.resetKey}|})" th:href="${url}"
        th:text="${url}">Login link</a>
    </p>
</body>

目前邮件看起来像这样${HOST_PUBLIC}/#/reset/finish?key=xxx

【问题讨论】:

  • 将 HOST_PUBLIC=test.mydomain.com 放入 .env 文件中。这应该在 docker-compose.yml 文件中可用

标签: spring spring-boot docker environment-variables


【解决方案1】:

这不起作用的原因是,在 .env 文件中设置的变量仅可用于 docker-compose 文件,而不是像环境变量那样全局,并且无法从 spring-application .yml 文件中访问。 为了使变量可以全局访问,我设置了

environment:
  - HOST_PUBLIC=${HOST_PUBLIC}

也可以使hole .env 文件可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2015-10-21
    • 2020-04-08
    • 2020-06-16
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多