如何在运行时使用 angular 7 读取 docker 中存在的 yml 文件



我是 angular、kubernetes 和 docker 的新手, 我们要求使用包含机密的 .yml。 我们目前将所有内容都放在 Environment.prod.ts 文件中,但希望使用 .yml,它将存在于 docker 中(最初手动生成(。

我想用的是 Angular7+ --> environment.prod.ts (放置环境变量并在构建/运行时从 docker 文件获取 env 变量(文件路径(的详细信息(--> dockerfile (包含环境变量和机密文件的路径映射( -->.yml 文件(在运行时从中获取数据(

我已经对它进行了大量搜索,但找不到任何可以搭配的东西。有谁知道在哪里可以找到通过代码和配置实现它的参考?

如果有更好的方法,我们非常欢迎您。 请指教。

更新: 我的要求是使用 .yml 存在于 POD/构建映像之外但在 docker 内部。 而不是把所有东西都放在 Environment.ts/Environment.prod.ts 中, 我希望将其放入 .yml 并在运行时使用它(加密适用( 角度环境文件将只有最少的信息要执行上面。 已经尝试过 1(使用 webpack 读取 docker 文件中的 Env 变量 2(配置文件存在于构建本身中。

这种方法是否需要使用 nodejs 进行 http 调用?如果是,请提出建议。 希望这会清除云而不是添加它。

我不太确定,我是否正确理解了你。 您可能知道,您永远不应该将您不希望公开的机密放入您的前端代码中。

至于在您的 Angular 应用程序中使用环境变量;您可以使用角度服务器端配置。版本 8.0.0 旨在与 Angular 8 一起使用,因为它使用了 Angular 原理图和构建器。版本 2.0.0 可用于较旧的 Angular 版本。

免责声明:我是角度服务器端配置的作者。

您可以将该文件添加到angular.json文件中的资产中,并让 Webpack 随身携带。然后,可以在服务中定期调用文件以分析和使用其数据。

这基本上也是environment.ts文件的作用,正如您在angular.json中看到的那样,它在构建步骤中被替换。

"configurations": {
"production": {
"fileReplacements": [
{
"src": "src/environments/environment.ts",
"replaceWith": "src/environments/environment.prod.ts"
},
}
}

同样的原则适用于您自己的文件:-(。

最新更新