Frappe Docker 开发环境搭建完全指南
前言
Frappe Docker 是一个基于 Docker 容器技术构建的 Frappe 框架开发环境解决方案。本文将详细介绍如何从零开始搭建一个完整的 Frappe 开发环境,涵盖从基础环境准备到高级调试技巧的全过程。
环境准备
硬件要求
- 建议为 Docker 分配至少 4GB 内存
- 确保系统有足够的磁盘空间用于容器和开发文件
软件要求
-
Docker 环境:
- 最新版 Docker 引擎
- docker-compose 工具
-
系统配置:
- 当前用户需要加入 docker 用户组
- 对于 Windows/macOS 用户,需要在 Docker Desktop 中调整资源分配
开发环境初始化
获取项目代码
git clone frappe_docker项目地址
cd frappe_docker
配置开发容器
-
复制开发容器配置文件:
cp -R devcontainer-example .devcontainer
-
配置 VS Code 调试环境:
cp -R development/vscode-example development/.vscode
VS Code 远程容器开发
准备工作
- 安装 VS Code Remote Containers 扩展
- 配置数据库选项(默认 MariaDB,可选 PostgreSQL)
启动开发容器
- 在 VS Code 中打开项目文件夹
- 通过命令面板执行
Dev Containers: Reopen in Container
- 等待容器构建完成
创建 Frappe 开发环境
初始化 Bench
根据不同 Frappe 版本选择对应命令:
版本 14:
nvm use v16
PYENV_VERSION=3.10.13 bench init --skip-redis-config-generation --frappe-branch version-14 frappe-bench
cd frappe-bench
版本 13:
nvm use v14
PYENV_VERSION=3.9.17 bench init --skip-redis-config-generation --frappe-branch version-13 frappe-bench
cd frappe-bench
配置数据库连接
bench set-config -g db_host mariadb
bench set-config -g redis_cache redis://redis-cache:6379
bench set-config -g redis_queue redis://redis-queue:6379
bench set-config -g redis_socketio redis://redis-queue:6379
创建新站点
bench new-site --mariadb-user-host-login-scope=% development.localhost
开发模式配置
启用开发者模式
bench --site development.localhost set-config developer_mode 1
bench --site development.localhost clear-cache
安装应用
-
获取应用代码:
bench get-app --branch version-14 erpnext
-
安装应用到站点:
bench --site development.localhost install-app erpnext
自动化脚本使用
installer.py
脚本可自动化完成环境搭建:
python installer.py --help # 查看帮助
python installer.py # 使用默认配置
调试与开发
启动开发服务器
基础启动:
bench start
使用 VS Code 调试:
- 安装 Python 扩展
- 启动必要服务:
honcho start socketio watch schedule worker_short worker_long
- 通过 VS Code 调试面板启动 web 服务
交互式控制台
简单控制台:
bench --site development.localhost console
Jupyter 交互环境:
- 安装必要依赖:
/workspace/development/frappe-bench/env/bin/python -m pip install --upgrade jupyter ipykernel ipython
- 初始化 Frappe 环境:
import frappe frappe.init(site='development.localhost', sites_path='/workspace/development/frappe-bench/sites') frappe.connect()
高级配置
附加服务
在 .devcontainer/docker-compose.yml
中添加所需服务,如:
postgresql:
image: postgres:11.8
environment:
POSTGRES_PASSWORD: 123
volumes:
- postgresql-data:/var/lib/postgresql/data
UI 测试
- 安装 X11 依赖:
sudo bash ./install_x11_deps.sh
- 配置 Cypress 测试环境
邮件测试
启用 Mailpit 服务进行邮件测试:
- Web 界面:8025 端口
- SMTP 服务:mailpit:1025
总结
通过本文的详细指导,开发者可以快速搭建一个功能完善的 Frappe Docker 开发环境。从基础环境配置到高级调试技巧,这套方案为 Frappe 应用开发提供了完整的工具链支持。无论是开发新应用还是维护现有项目,这套环境都能提供高效、隔离的开发体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考