【问题标题】:Docker + Django on Elastic BeanstalkElastic Beanstalk 上的 Docker + Django
【发布时间】:2020-11-25 09:47:50
【问题描述】:
我有一个 Django 项目。我正在考虑在部署到 Elastic Beanstalk 之前将 Docker 添加到其中。我对 Django 和 Docker 非常陌生,想知道在将 Django 应用程序部署到 Elastic Beanstalk 时使用 Docker 有什么好处。谢谢!
【问题讨论】:
标签:
django
amazon-web-services
docker
amazon-elastic-beanstalk
docker-swarm
【解决方案1】:
与常规 Python EB 环境相比,在 EB 中使用 Docker 的一般优势可移植性和可重复性。
如果您将 django 应用程序捆绑为 Docker 容器,您就知道您的开发环境将与您的生产环境完全相同。容器中的所有依赖项、包版本、工具都将相同,无论它是在本地工作站、家用笔记本电脑还是在 EB 平台上运行。
但是,当您使用常规 Python 平台时,可移植性和可重现性可能难以保证。当前的 Python 平台基于 Amazon Linux 2。那么问题来了,你的开发环境是在家里还是在工作中完全一样?通常情况并非如此,这往往会导致“它在我本地的 ubuntu 工作站上工作,但在 EB 上不工作”的问题。
另外,有一天您可能会决定将您的应用程序从 EB 甚至 AWS 中迁移出去。使用 docker 会更容易做到这一点。这是因为 EB 是 AWS 的定制产品,其他具有自己设置和要求的供应商无法提供。
EB 支持两种基于 docker 的环境:
根据您的要求,您必须使用其中之一。他们每个人都有自己的用例,我认为这超出了这个问题的讨论范围。