67 lines
1.5 KiB
YAML
67 lines
1.5 KiB
YAML
|
|
version: '3.8'
|
||
|
|
|
||
|
|
services:
|
||
|
|
web:
|
||
|
|
build: .
|
||
|
|
restart: always
|
||
|
|
ports:
|
||
|
|
- "127.0.0.1:8000:8000"
|
||
|
|
volumes:
|
||
|
|
# 挂载日志和上传文件目录(持久化)
|
||
|
|
- ./shared/logs:/app/logs
|
||
|
|
- ./shared/uploads:/app/uploads
|
||
|
|
environment:
|
||
|
|
# 从 .env 文件读取环境变量
|
||
|
|
- MYSQL_HOST=mysql
|
||
|
|
- MYSQL_PORT=3306
|
||
|
|
- MYSQL_USER=${MYSQL_USER}
|
||
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||
|
|
- MYSQL_DB=${MYSQL_DB}
|
||
|
|
- SECRET_KEY=${SECRET_KEY}
|
||
|
|
- UPLOAD_FOLDER=/app/uploads
|
||
|
|
- LOG_FOLDER=/app/logs
|
||
|
|
depends_on:
|
||
|
|
- mysql
|
||
|
|
networks:
|
||
|
|
- app-network
|
||
|
|
|
||
|
|
mysql:
|
||
|
|
image: mysql:8.0
|
||
|
|
restart: always
|
||
|
|
volumes:
|
||
|
|
# MySQL 数据持久化
|
||
|
|
- mysql_data:/var/lib/mysql
|
||
|
|
environment:
|
||
|
|
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||
|
|
- MYSQL_DATABASE=${MYSQL_DB}
|
||
|
|
- MYSQL_USER=${MYSQL_USER}
|
||
|
|
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||
|
|
ports:
|
||
|
|
- "127.0.0.1:3306:3306"
|
||
|
|
networks:
|
||
|
|
- app-network
|
||
|
|
|
||
|
|
nginx:
|
||
|
|
image: nginx:alpine
|
||
|
|
restart: always
|
||
|
|
ports:
|
||
|
|
- "80:80"
|
||
|
|
- "443:443"
|
||
|
|
volumes:
|
||
|
|
- ./nginx/conf.d:/etc/nginx/conf.d
|
||
|
|
- ./nginx/ssl:/etc/nginx/ssl
|
||
|
|
- ./shared/logs/nginx:/var/log/nginx
|
||
|
|
# 静态文件直接由 Nginx 处理
|
||
|
|
- ./static:/app/static
|
||
|
|
- ./shared/uploads:/app/uploads
|
||
|
|
depends_on:
|
||
|
|
- web
|
||
|
|
networks:
|
||
|
|
- app-network
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
mysql_data:
|
||
|
|
|
||
|
|
networks:
|
||
|
|
app-network:
|
||
|
|
driver: bridge
|