Docker致信ECS抱怨负载均衡器问题

wfsdck30  于 2022-10-23  发布在  Docker
关注(0)|答案(1)|浏览(156)

我正在尝试使用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,它工作得很好。所以我不确定我还错过了什么。

vuktfyat

vuktfyat1#

默认私有网络只有公网,没有NAT网关。那个是使用x-aws-vpc标记所需的最低要求,而不是您在自定义VPC中设置的。
该错误指示它正在尝试将负载均衡器同时附加到您的公有和私有子网,但当然它收到了错误,因为其中一些子网位于同一可用区。要使用您创建的自定义私有网络,您需要阅读有关如何自定义由docker-compose生成的CloudForment模板的信息。您将需要运行docker compose convert并获取在CloudForment模板中生成的负载均衡器的名称,然后在docker-compose文件中添加一些定制的x-aws-cloudformation代码,以准确指定负载均衡器应该连接到哪些子网。

相关问题