如何在单个Docker容器中运行多个Django服务?

时间:2020-02-02 15:55:54

标签: 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中运行它们的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

不可能将它们切成单独的容器。 我没有找到更好的解决方案,而是通过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倍。 有可能以更好的方式做到这一点吗?