使用 docker-compose 完整的运行一个 flask 应用(nginx+gunicorn+flask+mysql+redis)
·
使用 docker-compose 完整的运行一个 flask 应用(nginx+gunicorn+flask+mysql+redis)
镜像的准备
1.docker-compose中的两个要素:
- 服务(service) 一个个应用容器实例,比如订单微服务,库存微服务,mysql容器,nginx容器或者redis容器
- 工程(project)由一组广联的应用容器组成的业务单元,在docker-compose.yml文件中定义
docker-compose 使用的三个步骤:
- 编写Dockerfile定义各个服务应用,并构建出对应的镜像文件
- 使用docker-compose.yml来定义一个完整的业务单元,安排好整体应用中的各个容器服务
- 最后执行docker-compose up命令来启动并运行整个应用,完成一件部署上线
2.项目整体的目录结构图
│
├─flask_server
│ ├─app
│ │ ├─compose
│ │ │ ├─gunicorn
│ │ │ ├─mysql
│ │ │ │ ├─conf
│ │ │ │ │ └─my.cnf
│ │ │ │ ├─data
│ │ │ │ ├─init
│ │ │ │ ├─logs
│ │ │ │ └─mysql-files
│ │ │ ├─nginx
│ │ │ │ ├─nginx.conf
│ │ │ │ ├─conf
│ │ │ │ ├─html
│ │ │ │ │ └─index.html
│ │ │ │ └─logs
│ │ │ └─redis
│ │ │ ├─redis.conf
│ │ │ └─data
│ │ └─server
│ │ └─__init__.py
│ ├─.env
│ ├─docker-compose.yml
│ ├─Dockerfile
│ ├─gunicorn_config.py
│ ├─requirements.txt
│ └─wsgi.py
flask_sever为整个后端项目的目录,具体的信息为:
- /app/compose 该目录里面包含了运行容器要挂在在宿主机上面的数据卷
- /app/server 整个flask应用的代码包
- .env 环境变量配置文件,供docker-compose和flask应用来使用
- docker-compose.yml docker-compose的配置文件
- Dockerfile 要生成flask应用镜像的Dockerfile文件
- gunicorn_config.py gunicorn服务的启动配置文件
- requirements.txt flask应用要安装的依赖包
- app.py flask应用的入口文件,供gunicorn服务器调用(Gunicorn服务器和flask应用在同一个容器中
3. nginx,mysql,redis镜像的准备
直接从dockerhub镜像仓库拉取对应的镜像
docker pull nginx
docker pull mysql
docker pull redis
4.Flask应用镜像的准备
Gunicorn华为Flask应用代码都在一个容器内,由Gunicorn这个高性能的Python WSGI服务器来跑Flask应用.
直接从 dockerhub 镜像仓库拉取对应的镜像
Gunicorn 和 Flask 应用代码都在一个容器内,由 Gunicorn 这个高性能的 Python WSGI 服务器来跑 Flask 应用。
更多推荐



所有评论(0)