Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将django应用程序映射到docker容器,使用URL寻址_Python_Django_Nginx_Docker_Consul - Fatal编程技术网

Python 将django应用程序映射到docker容器,使用URL寻址

Python 将django应用程序映射到docker容器,使用URL寻址,python,django,nginx,docker,consul,Python,Django,Nginx,Docker,Consul,我有一个Django web应用程序,我希望将其迁移到Docker容器。以当前的形式,这是一个Django项目,有四个应用程序:core、classify、survey,以及前端应用程序webapp。下面是项目的树状视图 按照容器流程执行单个完整业务功能的指导原则,我是否应该将其分开,每个Docker容器只有一个应用程序 如果我们假设是,那么我应该如何设置Nginx以指向使用的每个应用程序/容器?示例URL显示在下面的树中 . ├── api │   ├── static │   ├── set

我有一个Django web应用程序,我希望将其迁移到Docker容器。以当前的形式,这是一个Django项目,有四个应用程序:
core
classify
survey
,以及前端应用程序
webapp
。下面是项目的树状视图

按照容器流程执行单个完整业务功能的指导原则,我是否应该将其分开,每个Docker容器只有一个应用程序

如果我们假设是,那么我应该如何设置Nginx以指向使用的每个应用程序/容器?示例URL显示在下面的树中

.
├── api
│   ├── static
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── core          <- not addressable
│   ├── tests.py
│   ├── utils.py
├── classify      <- https://www.example.com/class?return_type=json
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── survey        <- https://www.example.com/survey
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── webapp        <- https://www.example.com
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── docker-compose.yml
├── docker-entrypoint.sh
├── Dockerfile
├── Dockerfile.prod
├── .dockerignore
├── .gitignore
├── manage.py
├── README.md
└── requirements.txt
。
├── 应用程序编程接口
│   ├── 静止的
│   ├── 设置.py
│   ├── url.py
│   └── wsgi.py

├── core根据不同应用程序的复杂性,您将是判断这一点的最佳人选。请注意,如果您选择将它们分解,那么您需要为每个后端应用程序提供一个单独的django实例。
我建议将其分为两个容器,后端和前端,nginx位于第三个容器上。

Good points@Shantanu。为了这个问题,我简化了这个项目,但是每个项目都需要一个到公共数据库的连接,甚至需要生成芹菜任务的能力。