手动搭建ERPNext Docker环境
本文介绍在Windows下基于Docker Desktop手动搭建ERPNext测试环境的简要流程。
说明:本方案只是用于测试Docker环境,如果需要生产使用,建议直接基于官方的docker-compose.yml配置调整使用Docker Compose搭建。
获取镜像
首先获取ERPNext以及相关依赖服务的Docker镜像,为后续启动服务做准备。
docker pull mariadb:10.3 docker pull redis:6.2-alpine docker pull frappe/erpnext-worker:v13 docker pull frappe/frappe-socketio:v13 docker pull frappe/erpnext-nginx:v13
启动服务
依序启动以下各服务,其中涉及的IP可通过docker inspect命令查询,以MariaDB为例:
docker inspect mariadb | select-string -pattern "IPAddress"
说明:Docker中,实例IP是不固定的,可以使用DNS或者hosts文件注入等机制处理IP变动问题,以下示例中的IP是在空白Docker环境中依序启动获得的IP。
启动数据库
docker run -d --name mariadb -e MARIADB_ROOT_PASSWORD=erpnext mariadb:10.3 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
启动Redis
docker run -d --name redis redis:6.2-alpine
启动ERPNext
docker run -d --name erpnext-worker -v c:/erpnext-sites:/home/frappe/frappe-bench/sites -e "MARIADB_HOST=172.17.0.2" -e "REDIS_CACHE=172.17.0.3" -e "REDIS_QUEUE=172.17.0.3" -e "REDIS_SOCKETIO=172.17.0.3" -e "SOCKETIO_PORT=9000" frappe/erpnext-worker:v13
启动SocketIO
docker run -d --name erpnext-socketio -v c:/erpnext-sites:/home/frappe/frappe-bench/sites frappe/frappe-socketio:v13
启动NGINX
docker run -d --name erpnext-nginx -p 8000:80 -v c:/erpnext-sites:/var/www/html/sites -e "FRAPPE_PY=172.17.0.4" -e "FRAPPE_SOCKETIO=172.17.0.5" frappe/erpnext-nginx:v13
创建站点
docker exec -it erpnext-worker bench new-site localhost docker exec -it erpnext-worker bench --site localhost install-app erpnext
同步静态文件(耗时较长)
docker exec erpnext-nginx rsync -a --delete /var/www/html/assets /var/www/html/sites
安装自定义应用
以下以ebclocal为例,说明自定义应用的安装方式。
在erpnext-worker实例内执行以下命令(如果其他应用涉及到静态资源文件的处理,由于整体环境被分割,可能需要额外处理):
install_app ebclocal https://gitee.com/yuzelin/ebclocal.git echo ebclocal >>/home/frappe/frappe-bench/sites/apps.txt . /home/frappe/frappe-bench/env/bin/activate bench --site localhost install-app ebclocal
安装完成后,需要重启erpnext-worker实例。
整合镜像(非官方)
另外,有非官方的整合镜像,如果只是用于测试或演示环境的话,相对要简化许多。
docker pull pipech/erpnext-docker-debian:13-F5.0_E5.0-py3 docker run -d -p 8000:8000 -p 9000:9000 --add-host secure.gravatar.com:127.0.0.1 pipech/erpnext-docker-debian:13-F5.0_E5.0-py3