
本镜像提供ERPNext v15版本的Docker部署方案,集成了多个扩展应用以增强其功能,满足企业全方位业务管理需求。通过容器化部署,简化了ERP系统的安装、配置和维护流程,适用于各类规模的企业和组织。
1. 设置环境变量(密码)
bashexport TRAEFIK_PASS=CHANGEME_LONG # Traefik管理界面密码 export DATABASE_PASS=CHANGEME_ONLY_CHARS # 数据库密码 export ADMIN_PASS=CHANGEME_HUMAN # ERPNext管理员密码
2. 配置Traefik
创建Traefik环境配置文件:
bashecho 'TRAEFIK_DOMAIN=traefik.domain.com' > ~/gitops/traefik.env # 替换为实际域名 echo 'EMAIL=info@vdm.io' >> ~/gitops/traefik.env # 替换为实际邮箱 echo "HASHED_PASSWORD='$(openssl passwd -apr1 "$TRAEFIK_PASS" | sed 's/\$/\\$/g')'" >> ~/gitops/traefik.env
部署Traefik:
bashdocker compose --project-name traefik \ --env-file ~/gitops/traefik.env \ -f ~/frappe_docker/overrides/compose.traefik.yaml \ -f ~/frappe_docker/overrides/compose.traefik-ssl.yaml up -d
3. 配置并部署数据库(MariaDB)
创建数据库环境配置文件:
bashecho "DB_PASSWORD=$DATABASE_PASS" > ~/gitops/mariadb.env
部署MariaDB:
bashdocker compose --project-name mariadb --env-file ~/gitops/mariadb.env -f ~/frappe_docker/overrides/compose.mariadb-shared.yaml up -d
4. 配置ERPNext环境
复制并修改ERPNext环境配置文件:
bashcp ~/frappe_docker/example.env ~/gitops/erpnext-one.env sed -i "s/DB_PASSWORD=123/DB_PASSWORD=$DATABASE_PASS/g" ~/gitops/erpnext-one.env sed -i 's/DB_HOST=/DB_HOST=mariadb-database/g' ~/gitops/erpnext-one.env sed -i 's/DB_PORT=/DB_PORT=3306/g' ~/gitops/erpnext-one.env echo 'ROUTER=erpnext-one' >> ~/gitops/erpnext-one.env echo "SITES=\`erpnext.domain.com\`" >> ~/gitops/erpnext-one.env # 替换为实际ERPNext域名 echo "BENCH_NETWORK=erpnext-one" >> ~/gitops/erpnext-one.env
生成ERPNext Compose配置文件:
bashdocker compose --project-name erpnext-one \ --env-file ~/gitops/erpnext-one.env \ -f ~/frappe_docker/compose.yaml \ -f ~/frappe_docker/overrides/compose.redis.yaml \ -f ~/frappe_docker/overrides/compose.multi-bench.yaml \ -f ~/frappe_docker/overrides/compose.multi-bench-ssl.yaml config > ~/gitops/erpnext-one.yaml
5. 使用当前镜像部署ERPNext
替换配置文件中的镜像版本:
bashsed -i 's/frappe\/erpnext\:v15\.23\.1/llewellyn\/erpnext\:latest/g' ~/gitops/erpnext-one.yaml
部署ERPNext:
bashdocker compose --project-name erpnext-one -f ~/gitops/erpnext-one.yaml up -d
6. 创建ERPNext站点
bashdocker compose --project-name erpnext-one exec backend \ bench new-site erpnext.domain.com --mariadb-root-password "$DATABASE_PASS" --install-app erpnext --admin-password "$ADMIN_PASS"
7. 安装集成应用
进入ERPNext后端容器:
bashdocker exec -it erpnext-one-backend-1 /bin/bash
在容器内执行以下命令安装应用:
bashbench use erpnext.domain.com # 切换到创建的站点 bench install-app payments # 支付模块 bench install-app hrms # 人力资源模块 bench install-app webshop # 电商模块 bench install-app lending # 贷款管理模块 bench install-app erpnext_shipping # 物流模块 bench install-app print_designer # 打印设计器 bench install-app insights # 数据分析模块 bench install-app builder # 应用构建工具
可选安装的其他应用:
bashbench install-app health # 健康管理模块 bench install-app gameplan # 项目管理模块 bench install-app crm # 客户关系管理模块 bench install-app education # 教育管理模块
bashdocker compose --project-name erpnext-one -f ~/gitops/erpnext-one.yaml down
bashdocker rmi llewellyn/erpnext:latest
bashdocker compose --project-name erpnext-one -f ~/gitops/erpnext-one.yaml up -d
bashdocker exec -it erpnext-one-backend-1 /bin/bash bench use erpnext.domain.com # 切换到目标站点 bench migrate # 执行数据库迁移
如有多个站点,对每个站点重复执行
bench use和bench migrate
当因IP变化导致数据库连接失败(错误示例:pymysql.err.OperationalError: (1045, "Access denied for user 'xxx'@'172.xx.xx.xx' (using password: YES)")),按以下步骤修复:
bashdocker exec -it erpnext-one-backend-1 /bin/bash
bashcat sites/erpnext.domain.com/site_config.json
bashdocker exec -it --user root mariadb-database /bin/bash
bashmysql -u root -p # 输入~/gitops/mariadb.env中设置的DB_PASSWORD
sqlUSE mysql; SELECT User, Host FROM user WHERE User='user_name'; # 替换为site_config.json中的db_name UPDATE global_priv SET Host='172.xx.xx.%' WHERE User='user_name'; # 替换为实际IP段 GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'172.xx.xx.%'; # 替换为db_name和user_name FLUSH PRIVILEGES;
@copyright Copyright (C) 2022 Llewellyn van der Merwe. All rights reserved. @license GNU General Public License version 2; see LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务