【问题标题】:What commands/config can I use to deploy a django+postgres+nginx using ecs-cli?我可以使用哪些命令/配置来使用 ecs-cli 部署 django+postgres+nginx?
【发布时间】:2016-10-20 23:05:50
【问题描述】:

我有一个基于the Docker Django docs 在本地运行的基本 django/postgres 应用程序。它使用 docker compose 在本地运行容器。

我想在 Amazon Web Services (AWS) 上运行这个应用程序,并使用命令行而不是 AWS 控制台来部署它。

我的尝试

当我尝试这个时,我最终得到:

注意:我试图以一种笨拙的方式启动 Python 开发服务器,希望在我添加 nginx 之前它会起作用。集群(RDS+服务器)会启动,但实例会立即死亡。

我后来未能解决的问题

我在这个过程中意识到:

  • 设置需要另一个容器,以便 Web 服务器 (nginx) 在 AWS 上运行(like this blog post,但本教程使用 AWS 控制台,我想避免使用)
  • ecs-cli 对 yml/json 配置使用与 docker-compose 不同的语法,因此您需要从本地 docker.yml 中获得一些单独/相似的代码(我不确定我上面的文件是否正确)

问题

那么,我使用什么 ecs-cli 命令和配置来部署应用程序,还是我做错了?

随意说我做错了。我也可以使用 Elastic Beanstalk - the tutorials on this don't seem to use docker/docker-compose,但总体上看起来更容易(至少有据可查)。

我想了解为什么任何给定的方法都是这样做的好方法。

【问题讨论】:

  • 这个问题你解决了吗?

标签: django postgresql amazon-web-services amazon-ec2 docker


【解决方案1】:

如果您只是想在亚马逊云中安装 ECS,您可能希望考虑的一种替代方法是使用 docker-machine 使用 amazonec2 驱动程序。

在执行 docker-compose 时,只需确保远程 Amazon 主机是 ACTIVE 可以使用docker-machine ls

查看

您必须使用 Amazon Mmgt 控制台重新访问的一项是打开适用的端口,例如端口 80 和撰写文件中公开的任何其他端口。为 VPC 设置安全组后,您应该能够在后续执行中简单地引用 VPC ID,而无需使用 Mgmt 控制台添加端口。您可能希望将实例大小从默认的 t2.micro 提高到与您的 NOTES 中指定的 t2.medium 匹配。


如果需要 ECS 编排,则需要创建一个任务定义,其中包含您在 docker compose 文件中定义的所需容器定义。我的建议是利用 Mgmt 控制台来构建定义,然后获取随附的 JSON 定义,该定义可用并存储在您的源代码存储库中,以供将来在命令行上执行,以便在注册任务定义时引用它们,在给定集群中执行任务和服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-24
    • 2018-01-18
    • 1970-01-01
    • 2020-12-18
    • 2011-10-24
    • 2016-04-11
    • 2021-09-14
    • 1970-01-01
    相关资源
    最近更新 更多