python - 如何在单个 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 中一起运行它们的正确方法是什么?
解决方案
不可能在单独的容器中切割它们。我没有找到更好的解决方案,并通过 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 倍。是否有可能以更好的方式做到这一点?
推荐阅读
- react-native - 如何使用 mapDispatchToProps 代替直接访问 Redux 存储?
- javascript - 拆分参数的问题(Discord Bot)
- amazon-web-services - API Gateway 自定义授权人之谜 503
- algorithm - Python中的并行快速排序
- ruby-on-rails - 在 Ruby on Rails 应用程序中生成视图所需的 Json 时 Heroku 超时
- ruby-on-rails - Capistrano 无法读取 ENV 变量
- json - 贾斯珀报告。在子表中使用来自父 json 的值
- java - 如何在二维字符数组中查找字符频率?
- curl - curl请求后没有输出
- html - Bootstrap 4:文本居中和左对齐?