Docker 部署
环境要求
- Docker 20.10+
- Docker Compose 2.0+
bash
docker --version
docker compose version快速启动
bash
# 1. 克隆项目
git clone https://github.com/yuandianxitong/ydadmin.git
cd ydadmin
# 2. 配置环境变量
cp server/.env.example server/.env编辑 server/.env,修改以下配置:
ini
[DB]
HOST = mysql # Docker 容器服务名
NAME = yd_admin
USER = root
PASS = your_password # 与 docker-compose.yml 中一致
[CACHE]
DRIVER = redis
[REDIS]
HOST = redis # Docker 容器服务名
[QUEUE]
CONNECTOR = redisbash
# 3. 启动所有服务
docker compose up -d
# 4. 安装后端依赖
docker compose exec php composer install
# 5. 访问安装向导完成初始化
# http://localhost:8000/install/docker-compose.yml 配置详解
yaml
services:
nginx:
image: nginx:alpine
ports:
- "8000:80" # 主机端口:容器端口
volumes:
- ./server:/var/www/html # 挂载后端代码
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
php:
build: ./docker/php # 自定义 PHP 镜像(含扩展)
volumes:
- ./server:/var/www/html
depends_on:
- mysql
- redis
mysql:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: your_password
MYSQL_DATABASE: yd_admin
volumes:
- mysql_data:/var/lib/mysql # 数据持久化
ports:
- "3306:3306" # 可选,调试用
redis:
image: redis:7-alpine
volumes:
- redis_data:/data # 数据持久化
volumes:
mysql_data:
redis_data:数据持久化
MySQL 和 Redis 数据通过 Docker volumes 持久化,删除容器不会丢失数据。
查看 volumes:
bash
docker volume ls备份 MySQL 数据:
bash
docker compose exec mysql mysqldump -u root -p yd_admin > backup.sql自定义配置
修改端口
编辑 docker-compose.yml 中 nginx 的 ports 映射。
使用 HTTPS
在 nginx 配置中添加 SSL 证书路径,并将证书文件挂载到容器中。
更新与重新部署
bash
# 拉取最新代码
git pull
# 重新构建并启动
docker compose up -d --build
# 更新依赖
docker compose exec php composer install
# 清除缓存
docker compose exec php php think clear
# 如有数据库升级脚本
docker compose exec mysql mysql -u root -p yd_admin < server/database/updates/vX.Y.Z/update.sql查看日志
bash
# 查看所有服务日志
docker compose logs -f
# 查看指定服务日志
docker compose logs -f php
docker compose logs -f nginx