尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Docker实战 | 使用Docker部署EspoCRM开源客户关系管理平台

Docker实战 | 使用Docker部署EspoCRM开源客户关系管理平台 【Docker项目实战】使用Docker部署EspoCRM开源客户关系管理平台一、EspoCRM介绍1.1 EspoCRM 简介1.2 主要特点1.3 环境要求1.4 主要使用场景二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载EspoCRM镜像五、部署EspoCRM应用5.1 创建部署目录5.2 编辑部署文件5.3 创建EspoCRM容器5.4 查看EspoCRM容器状态六、访问EspoCRM服务七、EspoCRM基本使用7.1 设置中文7.2 创建客户信息7.3 创建知识库八、总结一、EspoCRM介绍1.1 EspoCRM 简介EspoCRM 是一款免费的开源客户关系管理CRM平台旨在帮助各种规模的企业有效地建立和维护客户关系。它提供了一套全面的工具用于存储、组织和管理所有与业务相关的客户信息包括潜在客户、联系人、销售机会、营销活动和支持案例等。该平台设计有一个直观且易于使用的界面使用户能够高效地管理其业务数据。1.2 主要特点开源透明度源代码开放允许用户审查并理解数据是如何被管理和处理的。高度定制化支持功能开发、自定义实体、字段、关系及按钮创建以适应特定业务需求。简洁的用户界面提供了一个美观、易用的界面缩短了学习曲线提高了工作效率。REST API 集成内置REST API使得与其他应用程序和服务的集成变得简单。社区支持拥有活跃的开发者社区为用户提供持续的支持和改进。1.3 环境要求EspoCRM 支持以下环境配置PHP 版本 8.2 至 8.4数据库管理系统MySQL 5.7 或更高版本MariaDB 10.2 或更高版本PostgreSQL 15 或更高版本1.4 主要使用场景初创企业与中小企业对于预算有限但需要专业级CRM解决方案的企业来说EspoCRM 提供了一个经济实惠的选择。开发人员和技术爱好者提供了丰富的API接口和扩展能力非常适合那些希望根据自身需求深度定制CRM系统的团队或个人。寻找免费CRM方案的组织如果一个组织正在寻找既安全又易于使用的CRM平台EspoCRM 可能是理想之选。二、本次实践规划2.1 本地环境规划本次实践为个人测试环境操作系统版本为Centos7。hostname内网 IP地址操作系统版本Docker版本项目名称VM-8-9-centos10.3.8.9CentOS Linux 726.1.3EspoCRM2.2 本次实践介绍1.本次实践部署环境为个人测试环境生产环境请谨慎2.在Docker环境下部署EspoCRM系统。三、本地环境检查3.1 检查Docker服务状态检查Docker服务是否正常运行确保Docker正常运行。[rootVM-8-9-centos ~]# systemctl status docker● docker.service - Docker Application Container Engine Loaded: loaded(/usr/lib/systemd/system/docker.service;enabled;vendor preset: disabled)Active: active(running)since Thu2025-01-0920:59:40 CST;4days ago Docs: https://docs.docker.com Main PID:1424(dockerd)Tasks:9Memory:1.0G CGroup: /system.slice/docker.service3.2 检查Docker版本检查Docker版本[rootVM-8-9-centos ~]# docker -vDocker version26.1.3, build b72abbb3.3 检查docker compose 版本检查Docker compose版本确保2.0以上版本。[rootVM-8-9-centos ~]# docker compose versionDocker Compose version v2.27.1四、下载EspoCRM镜像执行以下命令拉取以下EspoCRM镜像。[rootVM-8-9-centos ~]# docker pull espocrm/espocrm:8.4.2-apache8.4.2-apache: Pulling from espocrm/espocrm 302e3ee49805: Pull complete 07fc0890b857: Pull complete 141aa7d58c57: Pull complete 2720d4bca8b3: Pull complete 82deca51468c: Pull complete dec741dfa526: Pull complete e204b0efab94: Pull complete 0a9b8825ee85: Pull complete ef45e9da2633: Pull complete f2b46378d521: Pull complete 5c104459ddad: Pull complete 282db878d4dd: Pull complete 4a1f827cc210: Pull complete 7f944e13f551: Pull complete 2dc50b6f481b: Pull complete 00dbf19cac07: Pull complete 4f4fb700ef54: Pull complete 47470d9daec3: Pull complete a5a1714ac185: Pull complete Digest: sha256:9575d4904e6aee3b631f617e092e1dbed3019fdba57c5845735caa1714393342 Status: Downloaded newer imageforespocrm/espocrm:8.4.2-apache docker.io/espocrm/espocrm:8.4.2-apache执行以下命令拉取mysql:8镜像。[rootVM-8-9-centos ~]# docker pull mysql:88: Pulling from library/mysql 2c0a233485c3: Pull complete 6f5cca38a221: Pull complete d7c84b66ede0: Pull complete 299f6f88c6cf: Pull complete d39eae8f9927: Pull complete ec0557361569: Pull complete f6d0f80cb1be: Pull complete d496030b710c: Pull complete 4d755d8c89d1: Pull complete 699d8e3dc44b: Pull complete Digest: sha256:106d5197fd8e4892980469ad42eb20f7a336bd81509aae4ee175d852f5cc4565 Status: Downloaded newer imageformysql:8 docker.io/library/mysql:8五、部署EspoCRM应用5.1 创建部署目录创建部署目录mkdir-p/data/espocrmcd/data/espocrm5.2 编辑部署文件本次实践使用docker compose方式部署在部署目录下创建docker-compose.yaml文件其中宿主机映射端口等可以自定义配置。vimdocker-compose.yamlversion:3services:mysql:image:mysql:8container_name:espocrm-mysqlenvironment:MYSQL_ROOT_PASSWORD:root_passwordMYSQL_DATABASE:espocrmMYSQL_USER:espocrmMYSQL_PASSWORD:database_passwordvolumes:-./data:/var/lib/mysqlrestart:alwayshealthcheck:test:[CMD,mysqladmin,ping,-p database_password]retries:3timeout:5sespocrm:image:espocrm/espocrmcontainer_name:espocrm-webenvironment:ESPOCRM_DATABASE_PLATFORM:MysqlESPOCRM_DATABASE_HOST:mysqlESPOCRM_DATABASE_USER:espocrmESPOCRM_DATABASE_PASSWORD:database_passwordESPOCRM_ADMIN_USERNAME:adminESPOCRM_ADMIN_PASSWORD:passwordESPOCRM_SITE_URL:http://10.3.8.9:9600volumes:-./web:/var/www/htmlrestart:alwaysports:-9600:80depends_on:mysql:condition:service_healthyespocrm-daemon:image:espocrm/espocrmcontainer_name:espocrm-daemonvolumes:-./web:/var/www/htmlrestart:alwaysentrypoint:docker-daemon.shespocrm-websocket:image:espocrm/espocrmcontainer_name:espocrm-websocketenvironment:ESPOCRM_CONFIG_USE_WEB_SOCKET:trueESPOCRM_CONFIG_WEB_SOCKET_URL:ws://10.3.8.9:8081ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN:tcp://*:7777ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN:tcp://espocrm-websocket:7777volumes:-./web:/var/www/htmlrestart:alwaysentrypoint:docker-websocket.shports:-8081:8080变量名称说明示例值MYSQL_ROOT_PASSWORDMySQL 根用户密码root_passwordMYSQL_DATABASE创建的数据库名称espocrmMYSQL_USER创建的数据库用户名espocrmMYSQL_PASSWORD创建的数据库用户的密码database_passwordESPOCRM_DATABASE_PLATFORMEspoCRM 使用的数据库平台类型MysqlESPOCRM_DATABASE_HOST数据库主机名或IP地址mysqlESPOCRM_DATABASE_USEREspoCRM 连接数据库使用的用户名espocrmESPOCRM_DATABASE_PASSWORDEspoCRM 连接数据库使用的密码database_passwordESPOCRM_ADMIN_USERNAMEEspoCRM 管理员用户名adminESPOCRM_ADMIN_PASSWORDEspoCRM 管理员登录密码passwordESPOCRM_SITE_URLEspoCRM 应用的URL用于设置内部和外部链接http://10.3.8.9:9600ESPOCRM_CONFIG_USE_WEB_SOCKET是否使用WebSockets进行实时通信trueESPOCRM_CONFIG_WEB_SOCKET_URLWebSocket服务器的URLws://10.3.8.9:8081ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSNWebSocket ZeroMQ 订阅者DSN (数据源名称)tcp://*:7777ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSNWebSocket ZeroMQ 提交DSN指向WebSocket容器的服务发现地址tcp://espocrm-websocket:77775.3 创建EspoCRM容器执行以下命令创建EspoCRM容器。[rootVM-8-9-centos espocrm]# docker compose up -dWARN[0000]/data/espocrm/docker-compose.yaml:versionis obsolete[]Running3/3 ✔ espocrm-websocket Pulled0.9s ✔ espocrm Pulled1.3s ✔ espocrm-daemon Pulled1.0s[]Running5/5 ✔ Network espocrm_default Created0.1s ✔ Container espocrm-mysql Healthy31.5s ✔ Container espocrm-daemon Started1.0s ✔ Container espocrm-websocket Started1.0s ✔ Container espocrm-web Started31.6s5.4 查看EspoCRM容器状态检查EspoCRM容器状态状态确保EspoCRM容器正常启动。[rootVM-8-9-centos espocrm]# docker compose psWARN[0000]/data/espocrm/docker-compose.yaml:versionis obsolete NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS espocrm-daemon espocrm/espocrmdocker-daemon.shespocrm-daemon About a minute ago Up32seconds80/tcp espocrm-mysql mysql:8docker-entrypoint.s…mysql About a minute ago Up About a minute(healthy)3306/tcp,33060/tcp espocrm-web espocrm/espocrmdocker-entrypoint.s…espocrm About a minute ago Up58seconds0.0.0.0:9600-80/tcp, :::9600-80/tcp espocrm-websocket espocrm/espocrmdocker-websocket.shespocrm-websocket About a minute ago Up32seconds80/tcp,0.0.0.0:8081-8080/tcp, :::8081-8080/tcp六、访问EspoCRM服务访问地址http://IP地址:9600将IP替换为自己服务器IP地址。如果无法访问到以下页面则检查宿主机的防火墙是否关闭或者放行相关端口云服务器则还需要设置安全组规则。默认的账号/密码 admin/password七、EspoCRM基本使用7.1 设置中文右上角进入设置界面——Preferences选择语言为Simplified Chinese (China)时区选择 Asia/Shanghai确认保存即可。7.2 创建客户信息在客户管理模块点击“创建客户”自定义填写客户信息如下所示7.3 创建知识库在知识库模块中点击“创建文章”填写文章名称和内容保存即可。浏览知识库中文章内容如下所示八、总结在本次 Docker 部署 EspoCRM 的实战中我们成功地将 EspoCRM 客户关系管理平台容器化实现了快速部署和环境一致性的保证。通过配置 Docker Compose 文件我们简化了数据库和服务之间的集成并确保了 EspoCRM 可以稳定运行于任何支持 Docker 的环境中。这一实践不仅验证了 EspoCRM 作为开源 CRM 解决方案的灵活性和强大功能同时也展示了 Docker 在应用程序部署中的高效性和便捷性。
返回列表