【问题标题】:Same build - diffrent environment (AWS, Docker, SpringBoot, Angular, Nginx)相同的构建 - 不同的环境(AWS、Docker、Spring Boot、Angular、Nginx)
【发布时间】:2018-07-10 14:43:45
【问题描述】:

我有一个 WebApp 使用:

前端:Angular 4、Nginx、Docker、AWS(ELB-single Docker)

后端:SpringBoot、Docker、AWS(ELB-single Docker)

很常见的情况。现在我想运行由环境变量切换的这个应用程序的不同实例。因为它总是与其他数据库/入口点配置相同的构建。我有点害怕如何直接和正确地实现这一点。也开放供建议。我已经在 Angular 和 SpringBoot 中运行了不同的环境。但这与预配置的构建文件(带有生产或 qa 集)但我想避免无用的重建。

现在的问题是: 有人已经构建了这样的东西,可以给我一个关于配置文件需要是什么样子的小例子吗?

-> Dockerfile -> Dockerrun.aws.json -> ...

尤其是前端部分是我的问题:

-> Dockerfile -> Dockerrun.aws.json -> nginx.conf.d -> “任何 Angular 配置?”

【问题讨论】:

    标签: angular amazon-web-services docker nginx environment-variables


    【解决方案1】:

    要切换配置,如果还没有的话,我会将可配置参数移出代码。

    对于前端,您可以将其移动到单独的 json 文件中,也可以在 html 页面中使用 data- 属性。这些可以在构建后的步骤中轻松更改,或者根据需要手动预配置。

    【讨论】:

    • 嗯,所以您建议为“qa”或“prod”创建一个构建作业,它只是将另一个“配置文件”注入/压缩到构建工件中?
    • 我当时考虑定义不同的工件以在下一步部署。并在第一个构建步骤打包它们。有什么问题吗?
    • ohu .. 你有没有链接可以显示 Angular 是如何使用资产配置文件的?以前没看过
    • 如果 Angular 已经在运行,您可以使用 angular.io/guide/http - 否则根据可用的 js 版本和/或库使用您可以使用的任何内容。如果您不关心更多构建,您当然可以只创建 2 个构建而不是 1 个构建 + 后处理。
    • 是的,你说得对!将网站作为应用程序而不是被动脚本来处理可能会很酷。
    【解决方案2】:

    我找到了一个糟糕但可怕的解决方案,它再次向我展示了当今的网络技术是多么“陈旧”。

    https://medium.com/@tiangolo/angular-in-docker-with-nginx-supporting-environments-built-with-multi-stage-docker-builds-bb9f1724e984

    这些使用 env 变量在 docker 容器的每次启动时使用 env-vars 来“重建”角度。 那么这是一个很酷的方法。但很遗憾,它必须实现这一目标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2021-07-10
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多