首页 > 解决方案 > 如何在单个 Docker 容器中运行多个 django 服务?

问题描述

我有一个 Django 项目,其中包含一些严重依赖 django 基础设施本身的微服务,并且必须从以下内容开始:

python manage.py sevicename1
python manage.py sevicename2
python manage.py sevicename3
python manage.py sevicename4
python manage.py sevicename...

他们都互相交流。在一个 Dockerfile 中一起运行它们的正确方法是什么?

标签: pythondjangodocker

解决方案


不可能在单独的容器中切割它们。我没有找到更好的解决方案,并通过 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:
...

除非我同意基本上使用多个相同的项目源并在每个 DOCKERFILE 或 YML 声明的末尾使用单独的 CMD 或 ENTRYPOINT,否则完全可以。有用。但是,总图像大小是原始文件夹本身的 3 倍。是否有可能以更好的方式做到这一点?


推荐阅读