Python 如何在单个Docker容器中运行多个django服务?
我有一个Django项目,其中包含一些微服务,这些微服务严重依赖Django基础设施本身,必须从以下几个方面开始:Python 如何在单个Docker容器中运行多个django服务?,python,django,docker,Python,Django,Docker,我有一个Django项目,其中包含一些微服务,这些微服务严重依赖Django基础设施本身,必须从以下几个方面开始: python manage.py sevicename1 python manage.py sevicename2 python manage.py sevicename3 python manage.py sevicename4 python manage.py sevicename... 他们都互相交流。 在一个Dockerfile中同时运行它们的正确方法是什么?不可能在单独
python manage.py sevicename1
python manage.py sevicename2
python manage.py sevicename3
python manage.py sevicename4
python manage.py sevicename...
他们都互相交流。
在一个Dockerfile中同时运行它们的正确方法是什么?不可能在单独的容器中剪切它们。 我找不到更好的解决方案,并通过YAML锚在docker-compose.yml中实现了这一点
dg: &dg
image: python:3.7.6-alpine
command: .... --> ( gunicorn --config ./gunicorn.conf.py core.wsgi:application)
dg_run_sevicename1:
<<: *dg
restart: on-failure
ports:
- 9011:9011
command: python manage.py sevicename
dg_run_sevicename2:
<<: *dg
restart: on-failure
command: python manage.py sevicename2
dg_run_sevicename3:
...
dg:&dg
图片:python:3.7.6-1
命令:…-->(gunicorn--config./gunicorn.conf.py core.wsgi:application)
dg_运行服务名称1:
不可能在单独的容器中切割它们。
我找不到更好的解决方案,并通过YAML锚在docker-compose.yml中实现了这一点
dg: &dg
image: python:3.7.6-alpine
command: .... --> ( gunicorn --config ./gunicorn.conf.py core.wsgi:application)
dg_run_sevicename1:
<<: *dg
restart: on-failure
ports:
- 9011:9011
command: python manage.py sevicename
dg_run_sevicename2:
<<: *dg
restart: on-failure
command: python manage.py sevicename2
dg_run_sevicename3:
...
dg:&dg
图片:python:3.7.6-1
命令:…-->(gunicorn--config./gunicorn.conf.py core.wsgi:application)
dg_运行服务名称1:
你看过docker compose吗?你的每个服务都应该在单独的容器中运行。因此,您可以为每个服务创建docker文件,并使用docker compose以正确的网络方式启动它们。请参阅下面我的想法。因此,您建议在不同容器中重用相同的源代码?是的,构建一个包含所有请求和代码的映像来运行您的应用程序。然后多次运行该映像。您查看过docker compose吗?您的每个服务都应该在单独的容器中运行。因此,您可以为每个服务创建docker文件,并使用docker compose以正确的网络方式启动它们。请参阅下面我的想法。因此,您建议在不同容器中重用相同的源代码?是的,构建一个包含所有请求和代码的映像来运行您的应用程序。然后多次运行该映像为什么不能将它们分离到多个容器中?如果你不这样做,你就失去了在微服务之间保持粒度的好处,因为在这种情况下,我将不得不在每个容器中复制整个项目的所有源代码。为什么你不能将它们分离到多个容器中?如果你不这样做,你就失去了在微服务之间保持粒度的好处,因为在这种情况下,我将不得不在每个容器中复制整个项目的所有源代码。