将Docker部署的ERPNext转换为常规安装方案咨询
从Docker部署的ERPNext迁移到Frappe Bench(保留数据+Traefik配置)
一、Docker环境下的完整数据备份
这一步是核心,确保所有数据和配置都被妥善保存:
备份数据库
- 方法一:使用Frappe内置备份命令(推荐,自动关联站点数据库与文件)
备份文件生成在容器内docker exec -it <erpnext_container_name> bench backup/home/frappe/frappe-bench/sites/<your_site_name>/private/backups/目录,复制到本地:docker cp <erpnext_container_name>:/home/frappe/frappe-bench/sites/<your_site_name>/private/backups ./erpnext_backups - 方法二:直接导出全量数据库
替换docker exec -it <mariadb_container_name> mysqldump -u root -p<db_root_password> --all-databases > erpnext_full_db.sql<mariadb_container_name>和<db_root_password>为实际容器名与数据库密码。
- 方法一:使用Frappe内置备份命令(推荐,自动关联站点数据库与文件)
备份站点文件
复制Docker容器内的sites目录到本地,包含上传附件、站点配置等关键文件:docker cp <erpnext_container_name>:/home/frappe/frappe-bench/sites ./erpnext_sites_backup
二、搭建Frappe Bench环境
确保服务器满足依赖要求(Python 3.8+/Node.js 16+/MariaDB 10.6+/Redis等),执行以下步骤:
- 安装bench工具:
pip install frappe-bench - 初始化bench项目(必须与Docker部署的ERPNext版本一致,先通过
docker exec -it <erpnext_container_name> bench version查看版本):bench init frappe-bench --frappe-branch version-14 # 替换为实际版本分支 - 进入bench目录并创建站点:
cd frappe-bench bench new-site <your_site_domain> # 与原Docker部署的站点域名保持一致
三、恢复数据到Frappe Bench
- 停止bench服务:
bench stop - 恢复数据库:
- 若使用
bench backup生成的备份文件,直接用bench恢复命令:bench restore ./erpnext_backups/<backup_file_name>.sql.gz - 若使用全量SQL备份,导入到MariaDB:
mysql -u root -p < ./erpnext_full_db.sql
- 若使用
- 恢复站点文件:
复制备份的站点目录到新bench的sites目录,覆盖默认文件:cp -r ../erpnext_sites_backup/<your_site_domain> ./sites/ - 修复权限并重启服务:
此时可通过服务器IP:8000访问站点,验证数据完整性。bench setup permissions bench start
四、保留Traefik及自定义证书配置
无需销毁现有Traefik容器,只需修改路由规则,将流量导向Frappe Bench的web服务:
修改Traefik路由配置
- 若之前用Docker标签自动配置路由,切换为文件配置。创建
erpnext.yml配置文件:http: routers: erpnext-router: rule: "Host(`<your_site_domain>`)" entryPoints: - websecure tls: certResolver: <your_existing_cert_resolver> # 复用原证书解析器 service: erpnext-service services: erpnext-service: loadBalancer: servers: - url: "http://<server_internal_ip>:8000" # Frappe Bench的web服务端口 - 将该文件挂载到Traefik容器的配置目录(如
/etc/traefik/dynamic/),Traefik会自动加载新规则。
- 若之前用Docker标签自动配置路由,切换为文件配置。创建
验证Traefik路由
重启Traefik容器后,访问站点域名,确认流量已转发到Frappe Bench且自定义证书正常生效。
关键注意事项
- 版本一致性:Frappe Bench安装的Frappe/ERPNext版本必须与原Docker部署完全一致,否则会出现数据兼容性问题。
- 权限检查:确保运行bench的用户对
sites目录有读写权限,避免文件访问错误。 - 测试验证:迁移完成后,先测试核心功能(数据查询、文件上传、用户登录),再正式切换Traefik路由。
内容的提问来源于stack exchange,提问作者fvlasie
相关产品推荐
相关产品推荐

