我使用tomcat:8.5-jre8-高寒映像在ECS中部署了一个Java jre8应用程序。这个任务的网络模式是awsvpc;我有许多这样的任务运行在由ALB面对的3个EC2实例中。
这很好,但是现在我想在每个tomcat容器前面添加一个nginx反向代理,类似于下面的示例:https://github.com/awslabs/ecs-nginx-reverse-proxy/tree/master/reverse-proxy。
我的缩写容器定义文件是:
{
"containerDefinitions": [
{
"name": "nginx",
"image": "<NGINX reverse proxy image URL>",
"memory": "256",
"cpu": "256",
"essential": true,
"portMappings": [
{
"containerPort": "80",
"protocol": "tcp"
}
],
"links": [
"app"
]
},
{
"name": "app",
"image": "<app image URL>",
"memory": "1024",
"cpu": "1024",
"essential": true
}
],
"volumes": [],
"networkMode": "awsvpc",
"placementConstraints": [],
"family": "application-stack"
}当我试图保存一个新的任务定义时,我收到了一个错误:“当网络类型为awsvpc时,不支持链接”。
我使用awsvpc网络模式,因为它可以通过安全组对入站流量进行粒度控制。
在使用awsvpc网络模式时,是否有任何方法创建带有2个链接容器的任务定义?
发布于 2019-04-03 18:40:55
您根本不需要链接部分,因为awsvpc允许您通过以下方式引用其他容器
localhost:8080 (或者您的另一个容器映射到的端口)在nginx配置文件中。
因此,从json中删除链接并在nginx中使用localhost:{container port}。就这么简单。
https://stackoverflow.com/questions/54772120
复制相似问题