
llewellyn/erpnext本镜像提供ERPNext v15版本的Docker部署方案,集成了多个扩展应用以增强其功能,满足企业全方位业务管理需求。通过容器化部署,简化了ERP系统的安装、配置和维护流程,适用于各类规模的企业和组织。
bashexport TRAEFIK_PASS=CHANGEME_LONG # Traefik管理界面密码 export DATABASE_PASS=CHANGEME_ONLY_CHARS # 数据库密码 export ADMIN_PASS=CHANGEME_HUMAN # ERPNext管理员密码
创建Traefik环境配置文件:
bashecho 'TRAEFIK_DOMAIN=traefik.domain.com' > ~/gitops/traefik.env # 替换为实际域名 echo 'EMAIL=***' >> ~/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
创建数据库环境配置文件:
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
复制并修改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
替换配置文件中的镜像版本:
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
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"
进入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





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务