【问题标题】:unable to use continuous delivery on AWS for a django app(nginx, psql)无法在 AWS 上为 django 应用程序(nginx、psql)使用持续交付
【发布时间】:2017-12-06 00:56:58
【问题描述】:

我尝试了多个教程来运行我的应用程序,该应用程序在 docker、django、nginx、postgres 上运行良好。我已经准备好我的docker-compose.yml 文件,将它发送到云端不是很简单吗?我尝试了 Elasticbeanstalk,得到了多个难以调试的错误。 AWS似乎不支持docker-compose.yml,我应该使用他们的Dockerrun.aws.json,我也尝试过ECS,但似乎也不容易。

有人知道这方面的完整、详尽的教程吗?顺便说一句,我正在使用 codeship,所有测试都运行良好,但部署也一直失败。

【问题讨论】:

    标签: django amazon-web-services amazon-elastic-beanstalk devops amazon-ecs


    【解决方案1】:

    如果是docker,我建议直接去ECS。是的,它们不支持 docker-compose,但 ECS 足够相似。查看以下 Github 项目在 ECS 上部署 django

    https://github.com/ethanmcc/django-ecs-deploy

    您还应该查看以下 AWS docker-compose ecs-cli 实用程序:

    http://docs.aws.amazon.com/AmazonECS/latest/developerguide/cmd-ecs-cli-compose.html

    既然我回答了你的问题,我建议你考虑不要使用 docker 发布,尤其是你的数据库。 IMO,AWS 的关键价值之一是使用他们的一些托管系统,例如,使用 RDS 来管理您的 Postgres 数据库,而不用担心维护自己的 24/7 运行。与静态文件相同,最好的解决方案(而且超级便宜)是使用 S3,或者更好的是使用 CloudFront。

    广告:查看以下链接,了解我创建的一个自以为是的模板,该模板展示了我自己的基础架构,至少有两家初创公司在生产中使用。它在本地使用 docker-compose,但我使用 Elastic Beanstalk (Python) + RDS + CloudFront 进行生产,并显示了执行此操作的单个部署命令。它比通常的要复杂一些,因为它将静态文件构建为独立项目(使用 Gulp)并直接部署到 S3/CloudFront,然后将基于模板的模板复制到 Django 项目:

    https://github.com/dkarchmer/django-aws-template

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2012-11-20
      相关资源
      最近更新 更多