【发布时间】:2018-09-21 16:15:24
【问题描述】:
我正在使用 Angular 5,我的前端应用使用 Nginx,后端使用 Node.js。一切都将在 Docker 中运行。
我需要为后端和前端创建多个环境(登台、生产……)。后面很简单,我在 Docker compose 中使用NODE_ENV。但是前面呢?
由于我在 AOT 中使用 Angular,在 Nginx 中为 dist 文件夹提供服务,因此我不知道如何动态更改环境。我目前找到的唯一解决方案是使用ng build --env=staging 构建多个前端版本,一个通过 env,将每个 Docker 映像推送到 DTR 中并通过 env 名称获取这些映像。
这很麻烦,我想知道是否有人遇到同样的问题并找到了更好的方法。或者也许整个事情都是个坏主意?
欢迎任何线索!
【问题讨论】:
-
感谢您的洞察力,但我仍然需要构建 N 个 docker 映像,其中包含不同的
conf.json。理想情况下,我想使用一些环境变量,但仍然是 1 张图片。 -
我不太了解 docker,但你不能有一个任务只是根据环境将正确的配置复制到正确的位置吗?您的构建可以包含多个 config.xxx.json 并且任务将正确的一个复制到 config.json
-
Docker 有两个阶段: 1. 你构建一个镜像,包含你需要的所有文件。 2.你“执行”一个图像,带有一些可选的环境。我只需要在第 2 阶段进行手术
-
但是当你执行镜像的时候,你启动了一个进程,就像启动nginx一样,对吧?也许你可以启动一个 bash 文件来替换配置,然后启动 nginx?
标签: angular docker nginx environment-variables