Angular 6 / Nginx / Docker / Kubernetes:为不同的环境配置环境变量

时间:2018-10-23 02:14:51

标签: angular docker nginx kubernetes devops

我有一个Angular 6应用程序,我需要将它作为Docker容器部署到Kubernetes集群上(Nginx基本映像)。相同的映像仅生成一次并用于开发测试产品环境。由于Docker映像仅创建一次并在其他环境中重复使用,因此我们不再具有environment.ts文件。我必须将env变量放入index.html中,以便每个环境都可以进行设置。 但这不好,因为我们可以看到一些细节,键等。 是否有其他方法或其他体系结构可以避免将env变量放入index.html中? 最好的问候

2 个答案:

答案 0 :(得分:0)

通常最好在服务器上有一个端点,该端点在应用程序初始化期间被调用,这样您就不会在客户端硬编码任何可以被最终用户查看的东西。

但是,仅仅拥有这些还不够,因为如果将它们存储在缓存或本地存储中,您需要以某种方式保护它们。

答案 1 :(得分:0)

最终,如果要将任何“环境变量”的值暴露给您的角度应用程序,则最终用户可以访问它。

要将“环境变量”的值“传输”到您的前端,我将修改您的docker映像并让一个脚本作为您的ENTRYPOINT运行,以执行以下操作:

  1. echo "var my_env_var = '$MY_ENV_VAR';" >> /usr/share/nginx/html/variables.js(为每个变量重复)
  2. 在您的角度应用程序中加载variables.js脚本。
  3. 通过nginx -g 'daemon off;'在前台启动nginx