Files
weipan02_server/DOCKER_README.md
2025-10-31 01:21:31 +08:00

175 lines
2.7 KiB
Markdown

# Docker 部署说明
本项目使用 `webdevops/php-nginx:7.2-alpine` 作为基础镜像。
## 文件说明
- `Dockerfile` - Docker 镜像构建文件
- `docker-compose.yml` - Docker Compose 编排文件
- `.dockerignore` - Docker 构建忽略文件
- `docker/nginx/vhost.conf` - Nginx 虚拟主机配置
## 快速启动
### 1. 安装依赖(首次部署)
在启动 Docker 之前,需要先在宿主机上安装 Composer 依赖:
```bash
composer install
```
### 2. 启动服务
```bash
docker-compose up -d
```
### 3. 查看服务状态
```bash
docker-compose ps
```
### 4. 查看日志
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看 web 服务日志
docker-compose logs -f web
# 查看 MySQL 日志
docker-compose logs -f mysql
```
## 服务信息
### Web 服务
- 访问地址: http://localhost:8080
- 容器名称: weipan_web
- PHP 版本: 7.2
- Web 服务器: Nginx
### MySQL 服务
- 主机: mysql (容器内) / localhost:3306 (宿主机)
- 数据库: weipan
- 用户名: weipan
- 密码: weipan123
- Root 密码: root
## 配置说明
### PHP 配置
- 内存限制: 256M
- 执行时间: 300秒
- POST 大小: 50M
- 上传文件大小: 50M
### 数据库配置
修改 `config/database.php` 中的数据库连接信息:
```php
'hostname' => 'mysql', // Docker 容器内使用服务名
'database' => 'weipan',
'username' => 'weipan',
'password' => 'weipan123',
```
## 常用命令
### 停止服务
```bash
docker-compose stop
```
### 重启服务
```bash
docker-compose restart
```
### 停止并删除容器
```bash
docker-compose down
```
### 停止并删除容器和数据卷
```bash
docker-compose down -v
```
### 重新构建镜像
```bash
docker-compose build --no-cache
docker-compose up -d
```
### 进入容器
```bash
# 进入 web 容器
docker-compose exec web sh
# 进入 MySQL 容器
docker-compose exec mysql bash
```
### 清理缓存
```bash
docker-compose exec web php think clear
```
## 目录权限
如果遇到权限问题,可以在容器内执行:
```bash
docker-compose exec web chown -R application:application /app
docker-compose exec web chmod -R 777 /app/runtime
```
## 生产环境建议
1. 修改 MySQL 密码为强密码
2. 调整 `docker-compose.yml` 中的端口映射
3. 设置合适的环境变量
4. 配置数据卷备份策略
5. 启用 HTTPS
6. 配置防火墙规则
## 故障排查
### 查看容器日志
```bash
docker-compose logs -f web
```
### 检查容器状态
```bash
docker-compose ps
```
### 测试数据库连接
```bash
docker-compose exec mysql mysql -uweipan -pweipan123 weipan
```
### 重置权限
```bash
docker-compose exec web chown -R application:application /app
docker-compose exec web chmod -R 755 /app
docker-compose exec web chmod -R 777 /app/runtime
```