在单个 AWS ECS Fargate 任务定义中将 Django 容器连接到 MySQL 容器

问题描述 投票:0回答:1

我有一个存储库这里。我目前正在努力将其部署到 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 设置中有效,但不起作用。我并不感到惊讶,因为这些是无服务器环境中的单独容器。

我尝试过的内容应该在存储库中可见这里:

django amazon-web-services amazon-ecs aws-fargate
1个回答
0
投票

据我了解,当它们位于同一任务定义中时,settings.py中的DB_HOST名称应该是容器的名称。

不,这是不正确的。当您为容器使用

awsvpc
网络模式(Fargate 上的唯一选项)时,
DB_HOST
设置应为
localhost
127.0.0.1

© www.soinside.com 2019 - 2024. All rights reserved.