Angularjs Docker中的环境变量
我有一个应用程序,它在2个容器中工作。 一个nodeJS和一个nginx容器。 他们正在一起工作。 开发者的代码中有一个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和端
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等可能重复的