CRMEB/help/docker/README.md
2026-03-23 14:57:47 +08:00

137 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 安装docker
## docker 官网下载
https://www.docker.com/products/docker-desktop
## 命令安装
```
curl -sSL https://get.daocloud.io/docker | sh
```
# 方式一一键启动CRMEB 系统
```
docker run -d \
--name crmeb_app \
-p 8111:80 \
-v $(pwd)/crmeb/runtime:/var/www/crmeb/runtime \
-v $(pwd)/crmeb/uploads:/var/www/crmeb/public/uploads \
-v $(pwd)/crmeb_mysql:/var/lib/mysql \
-v $(pwd)/crmeb_redis:/var/lib/redis \
-e TZ=Asia/Shanghai \
ccr.ccs.tencentyun.com/zbkj/crmebky:latest
```
# 方式二docker-compose 快速运行项目
## 1、安装docker-compose
https://www.runoob.com/docker/docker-compose.html
## 2、下载CRMEB程序
建议去下载最新开源代码 https://gitee.com/ZhongBangKeJi/CRMEB
程序放到docker 同级目录下
## 3、启动项目
```
进入docker-compose目录 cd /docker
运行命令:
```
docker-compose up -d
```
## 4、访问CRMEB 系统
移动端访问地址http://localhost:8011/
PC端访问地址http://localhost:8011/admin
## 5、安装CRMEB
### Mysql数据库信息
```
Host:crmeb_mysql
Post:3306
user:crmeb
pwd:123456
```
### Redis信息
```
Host:crmeb_redis
Post:6379
db:0
pwd:123456
```
## 6、常见错误及解决方案
### 6.1 MySQL 启动失败
**错误现象**MySQL 容器启动失败,日志显示 "--initialize specified but the data directory has files in it. Aborting."
**解决方案**
1. 停止所有容器:`docker-compose down`
2. 清空数据目录:`rm -rf mysql/data/*`
3. 重新启动服务:`docker-compose up -d`
**原因**MySQL 数据目录不为空,导致初始化失败。
### 6.2 数据目录映射问题
**错误现象**:数据库无法启动或数据无法持久化
**解决方案**
1. 确保 `mysql/data` 目录存在:`mkdir -p mysql/data`
2. 确保 `mysql/data` 目录为空
3. 确保 docker-compose.yml 中正确配置了数据卷映射:
```yaml
volumes:
- ./mysql/data:/var/lib/mysql
```
**原因**:数据目录未映射或映射不正确,导致数据库无法创建或数据丢失。
## 6.3 常见需要映射的目录说明
### 6.3.1 MySQL 数据目录
- **本地路径**`mysql/data`
- **容器路径**`/var/lib/mysql`
- **用途**:存储 MySQL 数据库的数据文件
- **注意事项**:必须为空目录,否则 MySQL 初始化会失败
### 6.2 MySQL 日志目录
- **本地路径**`mysql/log`
- **容器路径**`/var/log/mysql`
- **用途**:存储 MySQL 的日志文件
- **注意事项**:确保目录存在且有读写权限
### 6.3.2 PHP 应用目录
- **本地路径**`../../crmeb`
- **容器路径**`/var/www`
- **用途**:存储 CRMEB 应用代码
- **注意事项**:确保目录存在且包含完整的 CRMEB 代码
### 6.3.3 PHP 运行时目录
- **本地路径**`../../crmeb/runtime`
- **容器路径**`/var/www/runtime`
- **用途**:存储 PHP 应用的运行时文件,如缓存、日志等
- **注意事项**:确保目录存在且有读写权限
### 6.3.4 Nginx 配置目录
- **本地路径**`./nginx/vhost.conf`
- **容器路径**`/etc/nginx/conf.d/default.conf`
- **用途**Nginx 虚拟主机配置文件
- **注意事项**:确保配置文件存在且格式正确
### 6.3.5 Nginx 日志目录
- **本地路径**`./nginx/log`
- **容器路径**`/etc/nginx/log`
- **用途**:存储 Nginx 的日志文件
- **注意事项**:确保目录存在且有读写权限
### 6.3.6 目录创建命令
```bash
# 创建所有必要的目录
mkdir -p mysql/data mysql/log nginx/log
# 确保 CRMEB 应用目录存在
mkdir -p ../crmeb ../crmeb/runtime
```