如何在Django/Node.js项目中搭配使用DDEV?
DDEV v1.18适配Node.js、Django项目方案
DDEV v1.18版本虽然官方没有内置Django和Node.js的技术栈预设,但已经有成熟的社区自定义配置方案可以实现适配,具体操作如下:
适配Node.js项目
- 首先初始化空DDEV项目,执行命令
ddev config --project-type=php --docroot=.,选择php类型作为基底不会影响Node.js服务运行,仅用来跳过官方预设校验 - 编辑项目目录下
.ddev文件夹中的config.yaml,添加post-start钩子配置,项目启动时自动安装依赖并启动Node.js服务,示例配置:
hooks:
post-start:
- exec: npm install
- exec: npm run dev &
- 如果需要对外暴露Node.js服务端口,在
config.yaml中添加额外端口映射配置,示例如下:
web_extra_exposed_ports:
- name: node-app
container_port: 3000
http_port: 3000
https_port: 3001
- 执行
ddev start启动项目后,即可通过配置的端口访问Node.js应用
适配Django项目
- 先初始化DDEV项目,执行命令
ddev config --project-type=python --docroot=.,v1.18已经内置基础Python运行环境,仅缺少Django专属预设 - 编辑
.ddev/config.yaml,添加post-start钩子配置,启动时自动安装依赖、执行迁移并启动Django服务:
hooks:
post-start:
- exec: pip3 install -r requirements.txt
- exec: python3 manage.py migrate
- exec: python3 manage.py runserver 0.0.0.0:8000 &
- 同样添加端口暴露配置,映射Django默认的8000端口:
web_extra_exposed_ports:
- name: django-app
container_port: 8000
http_port: 8000
https_port: 8001
- 执行
ddev start启动后即可正常访问Django应用,如需使用数据库可以直接调用DDEV内置的MariaDB/PostgreSQL服务,连接参数可通过ddev describe命令查看
注:如果需要调整服务启动命令、端口映射规则,直接修改对应config.yaml配置后执行ddev restart即可生效
内容的提问来源于stack exchange,提问作者Pudding
相关产品推荐
相关产品推荐

