使用 docker-compose 的 ECS 中的 ecs-searchdomain-sidecar 问题

Pet*_*ter 3 amazon-web-services amazon-ecs docker docker-compose

部署后,我进入集群,看到我的服务以及我的服务中的任务。当我单击任务时,我有 2 个容器:

  • 我的应用程序
  • App_ResolvConf_InitContainer

my-app 正在按预期运行和工作,但是 App_ResolvConf_InitContainer 显示为“已停止”。当我展开它以查看更多信息时,它显示:

镜像:docker/ecs-searchdomain-sidecar:1.0

详细信息:退出代码 0 命令 ["us-east-1.compute.internal","my-app.local"]

当我转到 CloudWatch 检查日志时,该流中没有日志。

上下文:我的集群位于私有子网中。我在公共子网中创建了 NAT 网关并更新了路由表。

拉取图像似乎没有问题。如果我将 redis 添加到我的撰写文件中,它会拉取并创建容器

   redis:
     image: "redis:alpine"
Run Code Online (Sandbox Code Playgroud)

这是我的撰写文件:

version: "3.9"

services:
  web: 
    image: my-private-repo/web
    ports: ["80:80"]
Run Code Online (Sandbox Code Playgroud)

当我搜索 docker/ecs-searchdomain-sidecar:1.0 时,我找不到有关此的信息。此外,它不会提供任何错误。刚刚停止。

我在 docker compose up 或 docker compose Convert 期间没有收到任何警告。

mre*_*rre 8

TL/DR 版本是您不必担心它,它会按预期工作。你可以忽略那个边车。

较长的版本是,由于 ECS 服务的工作方式,在某些情况下(取决于您的主应用程序容器所基于的 Linux 映像),如果没有完全限定的域名(例如web.local),则无法解析普通服务名称。该 sidecar 在本地解析器级别上做了一个技巧,可以web在这些情况下进行解析。你所看到的是边车做出这个动作然后退出。它按预期工作。

  • 非常感谢您的帮助和解释。我不知道为什么这不在与 ECS 链接的文档中。再次感谢。 (2认同)