django - 如果我将我的Elastic Beanstalk应用程序移动为使用Docker,是否

我有一个运行中的Django flex Elastic Beanstalk应用程序,但是由于某些原因,我想从使用预配置的Python平台过渡到使用通用Docker平台。

在EB中使用Docker使用真实应用程序的文档或示例很少,因此我不清楚是否一旦移至Docker后也需要管理服务器,这意味着我的Docker镜像将需要自己的Apache /将nginx服务器放在我的django设置之上,或者EB是否仍将其Apache服务器与EC2实例上的docker镜像并排放置。换句话说,我的docker镜像上的最终CMD是简单的“python manage.py runserver”类型cmd还是某个“supervisord -n”?我是否需要类似于https://github.com/dockerfiles/django-uwsgi-nginx/blob/master/Dockerfile的镜像?

谢谢

最佳答案

您发布的链接是一个很好的起点,并且很好地描绘了功能性EB / Docker / Django设置的样子。还要看看https://github.com/AndrewSmiley/django-docker-eb(使用gunicorn代替nginx / uwsgi)。实际上,您实际上需要在Docker容器中运行某种服务器-该服务器(链接到示例中的nginx)是让您的Docker容器与正在运行它的EC2实例进行通信的原因。

如果您查看典型的Dockerfile,则有时会使用EXPOSE使端口对外界可见。 ElasticBeanstalk将在此端口上与您的容器通信,因此您的容器需要自己的某种内部服务器才能与这些请求进行交互。 ElasticBeanstalk将在EC2实例(我相信是nginx)上安装自己的外部服务器,该服务器将流量集中到您的容器。换句话说:Net EC2实例 EB Web服务器 Docker 容器中的服务器您的应用程序

虽然可以想象将python manage.py runserver作为Docker CMD运行,但是它设置的Web服务器并不适合用于生产。这就是为什么您链接到的镜像使用 super 用户来运行更适合生产的Web服务器配置的原因。但是,在两种情况下,您都在Docker容器中运行服务器!

关于django - 如果我将我的Elastic Beanstalk应用程序移动为使用Docker,是否需要自己的服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29991506/

相关文章:

java - java.io.IOException:方案:maprfs没有文件系统。将maprfs

hadoop - reducer 的默认数量

hadoop - 从Teradata查询到pyspark

docker - Docker中的开发环境

hadoop - NameNode 的用户名必须与 DataNode 的用户名相同吗?

php - PHP shell_exec无法执行Hadoop命令

docker - 如何将Docker的容器与管道连接

hadoop - HDFS如何存储大于 block 大小的单个数据?

nginx - 在docker中无法将nginx与ghost链接

json - 如何使用Python解析Spark 1.6中格式错误的JSON字符串,其中包含空格,多