首页
/ Flasky项目Docker Compose部署指南

Flasky项目Docker Compose部署指南

2025-07-07 00:57:42作者:何举烈Damon

理解Docker Compose在Flasky项目中的作用

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,它允许开发者通过一个YAML文件来配置应用的服务。在Flasky项目中,Docker Compose被用来同时管理Flask应用容器和MySQL数据库容器,实现开发和生产环境的一致性。

配置文件详解

版本声明

version: '3'

这指定了我们使用的是Docker Compose文件格式的第3版,这是目前广泛使用的稳定版本,支持大多数现代Docker功能。

服务定义

Flasky应用服务

flasky:
  build: .
  ports:
    - "8000:5000"
  env_file: .env
  restart: always
  links:
    - mysql:dbserver
  • build: .:指示Docker使用当前目录下的Dockerfile构建镜像
  • ports: "8000:5000":将容器内部的5000端口映射到主机的8000端口
  • env_file: .env:从.env文件加载环境变量
  • restart: always:确保容器在退出时自动重启
  • links:创建到mysql服务的连接,并设置别名dbserver

MySQL数据库服务

mysql:
  image: "mysql/mysql-server:5.7"
  env_file: .env-mysql
  restart: always
  • image: "mysql/mysql-server:5.7":使用官方MySQL 5.7服务器镜像
  • env_file: .env-mysql:从专门的环境变量文件加载MySQL配置
  • restart: always:确保数据库服务自动重启

环境变量配置建议

对于Flasky项目,建议在.env文件中至少包含以下配置:

FLASK_APP=flasky.py
FLASK_CONFIG=docker
SECRET_KEY=your-secret-key

在.env-mysql文件中应包含MySQL相关配置:

MYSQL_ROOT_PASSWORD=your-root-password
MYSQL_DATABASE=flasky
MYSQL_USER=flasky
MYSQL_PASSWORD=flasky-password

部署流程

  1. 确保系统已安装Docker和Docker Compose
  2. 创建.env和.env-mysql文件并配置适当的环境变量
  3. 在项目根目录运行:docker-compose up -d
  4. 应用将在http://localhost:8000 可用

常见问题解决

数据库连接问题

如果应用无法连接MySQL,检查:

  • 确保.env-mysql中的配置正确
  • 确认MySQL容器已完全启动(可能需要等待几秒钟)
  • 检查应用日志:docker-compose logs flasky

端口冲突

如果8000端口已被占用,可以修改docker-compose.yml中的端口映射,例如改为"8080:5000"

开发与生产环境差异

对于生产环境,建议:

  1. 使用更安全的密码
  2. 考虑添加数据卷持久化MySQL数据
  3. 可能需要对Flask应用添加更多安全相关的环境变量配置

扩展建议

可以根据项目需求扩展docker-compose.yml,例如:

  • 添加Redis服务用于缓存
  • 添加Nginx作为反向代理
  • 添加Celery服务处理后台任务

通过这个Docker Compose配置,Flasky项目可以轻松地在任何支持Docker的环境中部署,确保了开发、测试和生产环境的一致性。