You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为DDEV-Drupal项目添加Flask-WSGI路由的实现方案咨询

在DDEV-Drupal项目中集成Flask应用(支持Gunicorn)

步骤1:添加Flask服务到DDEV配置

在项目根目录创建.ddev/docker-compose.flask.yaml,添加适配DDEV环境的Flask服务配置:

version: '3.6'
services:
  flask:
    build: ./flask-app
    container_name: ddev-${DDEV_SITENAME}-flask
    restart: unless-stopped
    expose:
      - "5000"
    environment:
      - FLASK_APP=app.py
      - FLASK_ENV=development # 生产环境改为production
      - DDEV_SITENAME=${DDEV_SITENAME}
    volumes:
      - ./flask-app:/app
    networks:
      - ddev_default

步骤2:搭建Flask应用基础结构

在项目根目录新建flask-app文件夹,包含以下核心文件:

Dockerfile

FROM python:3.11-slim
WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 开发环境用flask run,生产环境替换为gunicorn
CMD ["flask", "run", "--host=0.0.0.0"]
# 生产环境替换为:CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]

requirements.txt

Flask==2.3.3
gunicorn==21.2.0 # 使用Gunicorn时需保留

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello from Flask in DDEV!"

if __name__ == '__main__':
    app.run(host='0.0.0.0')

步骤3:配置DDEV端口转发

编辑.ddev/config.yaml,添加端口转发规则,让主机5000端口映射到Flask容器:

# 保留原有配置,新增以下内容
additional_exposed_ports:
  - "5000:5000"

步骤4:启动并验证服务

  1. 启动DDEV:ddev start
  2. 访问http://myproject.ddev.site:5000,可看到Flask返回的测试内容

生产环境切换到Gunicorn

  • 修改flask-app/Dockerfile的启动命令为:
    CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "4", "app:app"]
    
  • 确保requirements.txt包含gunicorn依赖
  • 重启服务:ddev restart flask

额外说明

  • Flask容器与Drupal服务处于同一ddev_default网络,可直接通过db:3306访问Drupal数据库
  • 开发环境下FLASK_ENV=development会自动重载代码,生产环境建议关闭该配置

内容的提问来源于stack exchange,提问作者dotist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 06:43:22