【发布时间】:2015-12-24 07:50:29
【问题描述】:
说明
例如,我有以下烧瓶项目结构:
├ project_root/
├── .gitignore
├── README.md
├── docs
├── requirements.txt
├── yourapp
│ ├── templates/
│ ├── static/
│ ├── migrations/
│ ├── config.py
│ ├── app1/
│ │ ├── __init__.py
│ │ ├── controllers.py
│ │ ├── forms.py
│ │ └── models.py
│ ├── app2/
│ │ └── ...
│ └── app.py
└── tests/
我有以下要求:
- 我想在 nginx 后面用 gunicorn 部署它,用 rabbitmq 和 celery 和 postgresql 作为数据库。 Nginx 提供来自
yourapp/static的静态文件 - 我希望所有配置都成为我的代码库的一部分,例如所有 nginx、gunicorn 和其他配置都应该放在同一个 git 存储库中的某个位置。
- 我想使用 docker 并拥有以下 docker 镜像:web-app、postgresql、nginx、rabbitmq 和 celery-worker。
- 我希望能够从这个 git 存储库构建所有 docker 映像
- 我想使用 Dockerfiles
问题
如果我想满足所有这些要求,我应该将配置文件和 Dockerfile 放在哪里?
其他信息
我有一些想法,但不清楚。例如,我知道,我实际上不需要 Dockerfile 来存储 postgresql 映像,我可以使用 Docker hub 中的仅卷容器和 postgres 映像。
我无法解决的主要问题是 nginx 和应用程序范围的干扰:静态文件应该对 nginx 的 Dockerfile 可见,整个烧瓶应用程序也应该对 gunicorn 的 Dockerfile 可见,但我不能放 2 Dockerfiles 在同一个文件夹中。
另一个问题,我想将带有烧瓶代码(yourapp)的文件夹与配置文件夹分开,并且所有配置文件(nginx,gunicorn,celery)都应该存储在同一个文件夹中。
【问题讨论】:
标签: python deployment configuration flask docker