我有一个Django项目,其中包含一些微服务,这些微服务严重依赖Django基础架构本身,因此必须从以下内容开始:
python manage.py sevicename1
python manage.py sevicename2
python manage.py sevicename3
python manage.py sevicename4
python manage.py sevicename...
他们彼此交流。 一起在一个Dockerfile中运行它们的正确方法是什么?
答案 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倍。 有可能以更好的方式做到这一点吗?