我正在尝试使用Docker Compose将Docker部署到ECS。以下是我的对接器合成文件:
version: '3.8'
x-aws-vpc: "vpc-0fef56fb4ec32ad70"
services:
osticket:
container_name: osticket-web
image: osticket/osticket
environment:
MYSQL_HOST: db
MYSQL_PASSWORD: secret
depends_on:
- db
ports:
- 80:80
db:
container_name: osticket-db
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: osticket
MYSQL_USER: osticket
MYSQL_PASSWORD: secret
我的私有网络是私有网络,有6个子网(2个公网,4个内网),2个NAT网关,都在公网内,只有一个公网网关。我认为这是在docker compose中使用x-AWS-vPC标志所需的最低要求,其余资源将自动创建。
当我运行docker Compose Up命令时,我收到以下错误:
一个负载均衡不能绑定同一可用区内的多个子网(服务:AmazonElasticLoadBalding;状态码:400;错误码:InvalidConfigurationRequest.RequestID:d2142a38-55c6-44ef-a405-e34d99d9fa07;Proxy:空)
PS:如果我运行与默认VPC相同的docker Compose,它工作得很好。所以我不确定我还错过了什么。
1条答案
按热度按时间vuktfyat1#
默认私有网络只有公网,没有NAT网关。那个是使用x-aws-vpc标记所需的最低要求,而不是您在自定义VPC中设置的。
该错误指示它正在尝试将负载均衡器同时附加到您的公有和私有子网,但当然它收到了错误,因为其中一些子网位于同一可用区。要使用您创建的自定义私有网络,您需要阅读有关如何自定义由docker-compose生成的CloudForment模板的信息。您将需要运行
docker compose convert
并获取在CloudForment模板中生成的负载均衡器的名称,然后在docker-compose文件中添加一些定制的x-aws-cloudformation
代码,以准确指定负载均衡器应该连接到哪些子网。