用于与 Docker Compose 一起运行的 NGINX 的 AWS ECS DNS 解析器

Moh*_*med 5 nginx service-discovery amazon-ecs docker docker-compose

我使用 Docker 的 Compose 命令和ecs上下文来启动和编排 Web 应用程序的容器,以实现分支预览功能。

我遇到的问题是 Nginx 代理:它只能使用 CloudMap FQDN ( services.compose-project.local) 访问其他容器,而不能使用短服务名称。

文档相当清楚,两者都应该有效

服务可以使用 Compose 服务名称检索其依赖项(就像使用 docker-compose 在本地部署时所做的那样),或者可以选择使用完全限定名称。

这个问题是Nginx容器特有的;其他容器可以按照预期使用短名称和 FQDN 相互访问。

Docker的内部DNS服务器在ECS中似乎不可用:

send() failed (111: Connection refused) while resolving, resolver: 127.0.0.11:53
Run Code Online (Sandbox Code Playgroud)

默认 AWS VPC DNS 解析器169.254.169.253具有响应能力,但无法解析短名称:

32#32: *1 webapp could not be resolved (3: Host not found)
Run Code Online (Sandbox Code Playgroud)

我缺少什么?