Angularjs Docker中的环境变量

Angularjs Docker中的环境变量,angularjs,docker,environment-variables,Angularjs,Docker,Environment Variables,我有一个应用程序,它在2个容器中工作。 一个nodeJS和一个nginx容器。 他们正在一起工作。 开发者的代码中有一个src/app/app.config.js (function () { 'use strict'; angular .module('app') .constant('config', { URL: 'http://localhost', PORT: '8888', }); })(); 对于开发人员来说,URL和端

我有一个应用程序,它在2个容器中工作。 一个nodeJS和一个nginx容器。 他们正在一起工作。 开发者的代码中有一个
src/app/app.config.js

(function () {
  'use strict';

  angular
    .module('app')
    .constant('config', {
      URL: 'http://localhost',
      PORT: '8888',

    });
})();
对于开发人员来说,URL和端口都很好。在本地构建应用程序后,查看应用程序。 但我们在做什么?好的,我们有一个詹金斯,它正在执行npm安装,在构建之后,吞咽构建等。DockerFile将复制正确生成的文件夹(一个用于nginx,一个用于NodeJ)。之后,我们可以使用以下命令启动容器:

docker run --restart=always -d --name "nodejs" our-nodejs-image:11 
docker run --restart=always -d -p 80:80 --name nginx --link nodejs:nodejs our-nginx-image:11
主要问题如下。URL和端口必须更改。 例如,我们在
ec2-123:80
上运行容器时,必须将URL更改为
ec2-123
,将端口更改为
80
(因为nginx是我们节点的反向代理)

因此,在这种情况下,我们正在失去docker的优势(在每个环境中运行一个映像)。所以我们需要一个环境变量,当我们执行
docker run
命令时,我们可以描述这个环境变量。这个变量需要是URL和端口的输入

因此,nginx的run命令需要类似于:

docker run -e "URL: ec123" -e "PORT:80" --restart=always -d -p 80:80 --name nginx --link nodejs:nodejs our-nginx-image:11

docker inspect应检索此信息,我想,文档是否无法在app.config.js中更改此信息URL:process.env.URL,当他尝试运行时:-e“URL:ec2-123”?尝试过,但似乎不起作用为什么您首先需要客户端应用程序中的URL和端口?使用XHR/fetch进行主机相对调用,这样您就不需要处理COR等可能重复的