我有一个存储库这里。我目前正在努力将其部署到 AWS ECS。存储库配置为使用 Github Actions 构建两个容器,然后将它们发送到 ECR,然后更新 ECS 任务定义以拉取最新的映像提交。
两个容器都会启动,但随后会失败。 Django 容器给出错误提示
django.db.utils.OperationalError: (2005, "Unknown server host 'template-db' (-2)")
据我了解,当它们位于同一任务定义中时,settings.py 中的 DB_HOST 的名称应该是容器的名称。那为什么不起作用呢?这里有一些我不明白的基本网络概念吗?
我正在使用 ECS Fargate,因此在 awsvpc 上使用网络模式。
我还尝试将主机名更改为 localhost,因为这在本地的 podman-compose 设置中有效,但不起作用。我并不感到惊讶,因为这些是无服务器环境中的单独容器。
我尝试过的内容应该在存储库中可见这里:
据我了解,当它们位于同一任务定义中时,settings.py中的DB_HOST名称应该是容器的名称。
不,这是不正确的。当您为容器使用
awsvpc
网络模式(Fargate 上的唯一选项)时,DB_HOST
设置应为 localhost
或 127.0.0.1
。