请根据您的操作系统选择对应的 Docker 安装方式:
访问 Docker 官网下载并安装 Docker Desktop: https://www.docker.com/products/docker-desktop
使用以下命令安装 Docker:
curl -sSL https://get.daocloud.io/docker | sh
Docker Desktop 已包含 Docker Compose,无需额外安装。
请参考官方文档安装 Docker Compose: https://docs.docker.com/compose/install/
下载最新开源代码: https://gitee.com/ZhongBangKeJi/CRMEB
将程序解压并放置在与 docker-compose 目录同级的位置。
适用于大多数 Linux 系统和 macOS Intel 芯片。
配置文件路径:docker-compose/docker-compose.yml
Linux 专用配置,包含平台兼容性设置。
配置文件路径:docker-compose/linux/docker-compose.yml
macOS Intel 芯片专用配置。
配置文件路径:docker-compose/MacIntel/docker-compose.yml
MacBook M1/M2/M3 等 Apple Silicon 芯片专用配置,解决了 MySQL 兼容性问题。
配置文件路径:docker-compose/MacArm/docker-compose.yml
Windows 专用配置。
配置文件路径:docker-compose/window/docker-compose.yml
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 容器名称 | crmeb_mysql | Docker 容器名称 |
| 镜像 | mysql:5.7 | 数据库镜像(MacArm 使用 mysql/mysql-server) |
| 端口 | 3336:3306 | 宿主机端口:容器端口 |
| 用户名 | root | 数据库用户名 |
| 密码 | 123456 | 数据库密码 |
| 数据库名 | crmeb | 默认创建的数据库名称 |
| 容器 IP | 192.168.10.11 | 内部网络固定 IP |
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 容器名称 | crmeb_redis | Docker 容器名称 |
| 镜像 | redis:alpine | Redis 镜像 |
| 端口 | 6379:6379 | 宿主机端口:容器端口 |
| 容器 IP | 192.168.10.10 | 内部网络固定 IP |
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 容器名称 | crmeb_php | Docker 容器名称 |
| 镜像 | crmeb_php | PHP 镜像(通过 Dockerfile 构建) |
| 端口 | 9000:9000 | PHP-FPM 端口 |
| 20002:20002 | 长连接端口 1 | |
| 20003:20003 | 长连接端口 2 | |
| 容器 IP | 192.168.10.90 | 内部网络固定 IP |
| 程序目录 | /var/www | 项目在容器内的路径 |
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 容器名称 | crmeb_nginx | Docker 容器名称 |
| 镜像 | nginx:alpine | Nginx 镜像 |
| 端口 | 8011:80 | 宿主机端口:容器端口 |
| 容器 IP | 192.168.10.80 | 内部网络固定 IP |
进入 docker-compose 目录:
cd docker-compose
bash
docker-compose up -d
查看容器状态:
docker-compose ps
进入 PHP 容器并启动队列、定时任务和长连接服务:
bash
docker exec -it crmeb_php /bin/bash
进入项目目录:
cd /var/www
bash
php think timer start --d
启动长连接服务:
php think workerman start --d
bash
php think queue:listen --queue
在浏览器中输入以下地址访问 CRMEB 系统:
http://localhost:8011/
首次访问将进入 CRMEB 安装向导,根据提示完成系统安装。
| 配置项 | 值 |
|---|---|
| 数据库地址 | 192.168.10.11 |
| 端口 | 3306 |
| 用户名 | root |
| 密码 | 123456 |
| 数据库名 | crmeb |
| 配置项 | 值 |
|---|---|
| Redis 地址 | 192.168.10.10 |
| 端口 | 6379 |
| 数据库 | 0 |
| 密码 | 123456 |
# 停止所有服务
docker-compose down
# 停止指定服务
docker-compose stop <service-name>
# 重启所有服务
docker-compose restart
# 重启指定服务
docker-compose restart <service-name>
# 查看所有服务日志
docker-compose logs
# 查看指定服务日志
docker-compose logs <service-name>
# 实时查看日志
docker-compose logs -f <service-name>
问题:启动时出现端口被占用错误
解决方案:
docker-compose.yml 中的端口映射,例如将 8011:80 改为 8080:80问题:Error response from daemon: Address already in use
解决方案:
docker-compose.yml 中冲突容器的 ipv4_address192.168.*.* 网段内且不与其他设备冲突问题:MySQL 容器无法启动,无日志输出
解决方案:
mysql/mysql-server)问题:系统提示缺少某些 PHP 扩展
解决方案:
docker-compose/php/Dockerfile 添加扩展并重新构建镜像问题:程序无法写入文件或创建目录
解决方案:
crmeb 目录的权限www-data 用户有足够的权限bash
chmod -R 777 crmeb/runtime
chmod -R 777 crmeb/public/upload
## 9. 注意事项
### 9.1 数据持久化
- MySQL 数据默认挂载在 docker-compose/mysql/data 目录
- Redis 数据默认未挂载,如需持久化请修改配置文件
- 项目代码挂载在 crmeb 目录,修改宿主机上的代码会直接影响容器内的程序
### 9.2 网络配置
- 所有服务运行在 app_net 网络中,使用固定 IP 地址
- 宿主机与容器之间通过端口映射通信
- 容器之间可以通过内部 IP 直接通信
### 9.3 性能优化
- 根据服务器配置调整容器资源限制
- 生产环境建议修改默认密码和端口
- 配置合适的日志清理策略
### 9.4 升级说明
1. 停止所有服务
2. 备份数据和配置文件
3. 更新代码
4. 重新启动服务
5. 执行数据库迁移(如有需要)
## 10. 高级配置
### 10.1 修改默认密码
编辑 docker-compose.yml 文件,修改以下环境变量:
- MySQL: MYSQL_ROOT_PASSWORD, MYSQL_PASS
- Redis: 在 redis.conf 中配置密码
### 10.2 配置 HTTPS
1. 在 docker-compose.yml 中启用 443 端口映射
2. 准备 SSL 证书
3. 修改 nginx/vhost.conf 配置 HTTPS
### 10.3 自定义 PHP 配置
修改 docker-compose/php/php-ini-overrides.ini 文件来自定义 PHP 配置。
## 11. 技术支持
如果您在安装过程中遇到问题,可以通过以下方式获取帮助:
- CRMEB 官方社区:https://gitee.com/ZhongBangKeJi/CRMEB/issues
- Docker 官方文档:https://docs.docker.com/
---
文档版本:v1.0
更新日期:2023-12-04
适用版本:CRMEB v5.6+
---
> 提示:该文档由AI生成,仅供参考。