spring - Docker .env-File 中设置的变量如何在 application.yml 中使用?
问题描述
我试过:在 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
解决方案
这不起作用的原因是,在 .env 文件中设置的变量仅可用于 docker-compose 文件,而不是像环境变量那样全局,并且无法从 spring-application .yml 文件中访问。为了使变量可以全局访问,我设置了
environment:
- HOST_PUBLIC=${HOST_PUBLIC}
也可以使hole .env 文件可用。
推荐阅读
- c++ - 为什么 Visual Studio 看不到我的 C++ 类之一?
- sql - 如何在每个分组结果后合并一个硬编码行
- c# - @Html.RenderPartialAsync() 与
标签助手 - c# - 编辑应用服务编辑器以调整我的 Azure 服务机器人的阈值
- html - 显示元素超过一个位置:粘性
- microsoft-graph-api - https://graph.microsoft.com/beta/me/profile 端点出现 500 错误
- amazon-web-services - Terraform aws_lb_listener_rule 条件“不支持的块类型”
- c# - 将字符串与 XML 匹配,其值存储在多个元素上
- javascript - 在普通 JS 中访问索引
- firebase - 如何将多个域指向同一个网站?