ElasticBeanstalk多容器装卸工,带nginx
我有两个处理不同但相关功能的应用程序。我希望将它们作为单个实体部署在单个主机上:端口 我的计划是使用elasticbeanstalk的多容器docker平台。每个应用程序都是一个容器ElasticBeanstalk多容器装卸工,带nginx,nginx,docker,amazon-elastic-beanstalk,Nginx,Docker,Amazon Elastic Beanstalk,我有两个处理不同但相关功能的应用程序。我希望将它们作为单个实体部署在单个主机上:端口 我的计划是使用elasticbeanstalk的多容器docker平台。每个应用程序都是一个容器 我怎样才能把它们绑在一起?是否可以在eb主机上安装和配置nginx?您需要在dockrun.aws.json中定义构成应用程序的所有容器(以及nginx容器) { “awsebdockerversion”:2, “卷”:[ { “名称”:“nginx代理配置”, “主持人”:{ “源路径”:“/var/app/cu
我怎样才能把它们绑在一起?是否可以在eb主机上安装和配置nginx?您需要在
dockrun.aws.json
中定义构成应用程序的所有容器(以及nginx容器)
{
“awsebdockerversion”:2,
“卷”:[
{
“名称”:“nginx代理配置”,
“主持人”:{
“源路径”:“/var/app/current/conf.d”
}
}
],
“集装箱定义”:[
{
“名称”:“第一个应用程序”,
“图像”:“第一个应用程序图像名称:第一个应用程序标签”,
“环境”:[],
“必要”:正确,
“记忆保留”:200,
“挂载点”:[],
“端口映射”:[
{
“主机端口”:8081,
“集装箱港口”:8080
}
]
},
{
“名称”:“secondapp”,
“图像”:“第二个应用程序图像名称:第二个应用程序标签”,
“环境”:[],
“必要”:正确,
“记忆保留”:200,
“挂载点”:[],
“端口映射”:[
{
“主机端口”:8082,
“集装箱港口”:8080
}
]
}
{
“名称”:“nginx代理”,
“图像”:“nginx”,
“必要”:正确,
“memoryReservation”:128,
“端口映射”:[
{
“主机端口”:80,
“集装箱港口”:80
}
],
“链接”:[
“第一个应用程序”、“第二个应用程序”
],
“挂载点”:[
{
“sourceVolume”:“nginx代理配置”,
“容器路径”:“/etc/nginx/conf.d”,
“只读”:真
}
]
}
]
}
现在,当我们将应用程序容器链接到nginx容器时,我们可以使用它们的名称作为主机名来引用它们
然后,您需要部署与nginx configconf.d/default.conf
文件(放入conf.d
文件夹)压缩在一起的dockrun.aws.json,您需要在其中指定
location /firstapp/ {
proxy_pass http://firstapp;
}
location /secondapp/ {
proxy_pass http://secondapp;
}
在php应用之前,请参考nginx代理的AWS示例。
我将NGINX作为另一个容器运行,端口80绑定到主机。在DockerHub上,您应该可以找到easliy nginx图像。我不确定您的容器应该如何相互通信,但我认为主机的套接字可能会很好。每个容器都会创建套接字并将它们存储在其他容器可以访问的卷中。nginx location块不起作用,您将看到它。