用途
DDEV Operations 用于项目已有或需要 .ddev/ 目录时的本地开发环境运维,涵盖:新机器上的 DDEV 搭建、版本固定、config.local.yaml 与 .ddev/.env 文件管理、数据库导入、脚本化操作、快照与数据销毁防护等。
主要能力
- 配置审计:提供只读审计脚本
scripts/audit-ddev-config.py,检查版本固定(php-unpinned、php-eol、db-unpinned、node-eol、composer-v1)、配置(obsolete-key、perf-mode-committed 等)、目录与命令(upload-dir-misplaced、shadowed-command、crlf-command)、安全(ssh-agent-forwarded、provider-push、committed-secret 等)四类问题,退出码 0 表示无问题、10 表示有发现、3 表示无.ddev/config.yaml、4 表示配置不可读、2 表示用法错误。支持--json与--ignore <check>。 - 事实校验:
scripts/check-ddev-facts.py --offline校验技能正文与assets/ddev-facts.json是否一致;--live(每周)校验 DDEV 最新发布、文档默认值、内置命令、PHP/Node.js 生命周期下限,退出码 7 表示来源不可达(仅供参考)。 - 任务路由:按任务指向对应文档,包括
config-and-env.md(新机器、版本固定、CI 一致性、Composer、提交内容、env 文件、升级 DDEV)、automation-and-worktrees.md(脚本化、JSON 输出、销毁数据的命令、多个 git worktree、重命名或移动项目)、database.md(导入导出、快照、seed 与 reset、更换引擎、ddev pull 配方、脱敏数据)、performance.md、extending.md、frontend-node.md、debugging-sharing.md、troubleshooting.md等。
使用方式
先阅读再修改项目:查看 .ddev/config.yaml、所有 config.*.yaml、ls -a .ddev/,然后执行 ddev describe(URL、端口、服务)与 ddev version。审计脚本通过 bash scripts/run-python.sh scripts/audit-ddev-config.py /path/to/project 运行,scripts/run-python.sh 会查找可用的 Python 3.8+。所有命令通过 DDEV 执行(ddev composer、ddev php、ddev npm、ddev exec)。风险操作前用唯一名称快照:ddev snapshot --name=before-<task>-$(date +%Y%m%d%H%M%S)。
硬性规则摘要
版本需固定 php_version、database、nodejs_version 与 composer_version: "2",因 DDEV 默认值会变动(v1.25.0 将 PHP 8.3 切为 8.4、MariaDB 10.11 切为 11.8)。个人开发者设置(performance_mode、router_http_port/router_https_port、xdebug_enabled、bind_all_interfaces、host_db_port)不得写入 config.yaml,应放入 .ddev/config.local.yaml 或 ddev config global。已废弃的键(如 mutagen_enabled: false、nfs_mount_enabled)会被静默忽略。upload_dirs 从 docroot 解析。提交的 .ddev/.env* 文件不得含密钥,应使用 .local 版本。禁止将宿主 SSH agent 转发进容器。拉取脱敏数据,绝不推送到生产,删除可触达生产的 db_push_command/files_push_command。不要保留 DDEV 内置命令(craft、npm、artisan、wp 等)的项目副本。安装插件前先审查,优先官方 ddev/ 插件并固定 --version。Windows 上项目应放在 WSL2 文件系统内。销毁数据前必须与用户确认,涉及 ddev delete、ddev stop --remove-data、ddev start --reset-database、ddev snapshot --cleanup、ddev clean、ddev push、ddev import-db、ddev import-files、docker volume prune -a、ddev poweroff。多个 checkout 需要不同项目名。
适用场景与限制
适用于基于 DDEV 的 PHP 项目本地环境管理、脚本与 agent 驱动 DDEV、多 git worktree、数据库与性能运维。脚本边界:Craft 相关主题归 craftcms-ops,本地与生产漂移的安全问题归 security-ops,Vite HMR 归 frontend-upgrade-ops,包管理器归 package-manager-ops,Compose 与 Dockerfile 归 docker-ops,站点页面速度归 web-perf-ops。资料注明 DDEV 官方并未发布面向用户的 agent skill。示例中不得写入真实感项目主机名。
版本与来源
资料标注版本事实于 2026-10-05 对照 DDEV v1.25.4 核验,2026-10-06 经独立准确性审阅复核;“Observed”内容于该日在 DDEV v1.25.4(Docker Desktop、WSL2)的临时项目中复现。