Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ElasticBeanstalk多容器装卸工,带nginx_Nginx_Docker_Amazon Elastic Beanstalk - Fatal编程技术网

ElasticBeanstalk多容器装卸工,带nginx

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

我有两个处理不同但相关功能的应用程序。我希望将它们作为单个实体部署在单个主机上:端口

我的计划是使用elasticbeanstalk的多容器docker平台。每个应用程序都是一个容器


我怎样才能把它们绑在一起?是否可以在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 config
conf.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块不起作用,您将看到它。