密钥写死,处理报错

This commit is contained in:
2025-08-18 22:39:34 +08:00
parent 23a5c907f7
commit cc8d488bd9
11 changed files with 1452 additions and 367 deletions

139
docker-compose.prod.yml Normal file
View File

@@ -0,0 +1,139 @@
version: '3.8'
services:
# Flask应用服务
app:
build:
context: .
dockerfile: Dockerfile
image: flask-prompt-master:latest
container_name: flask-prompt-master-app
restart: unless-stopped
environment:
- FLASK_ENV=production
- DATABASE_URL=mysql+pymysql://root:${MYSQL_ROOT_PASSWORD}@mysql:3306/${MYSQL_DATABASE}?charset=utf8mb4
- REDIS_URL=redis://redis:6379/0
- SECRET_KEY=${SECRET_KEY}
- LLM_API_KEY=${LLM_API_KEY}
depends_on:
- mysql
- redis
volumes:
- ./logs:/app/logs
- ./uploads:/app/uploads
networks:
- app-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# MySQL数据库
mysql:
image: mysql:8.0
container_name: flask-prompt-master-mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
- ./docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 30s
timeout: 10s
retries: 3
# Redis缓存
redis:
image: redis:7-alpine
container_name: flask-prompt-master-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis_data:/data
networks:
- app-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
# Nginx反向代理
nginx:
image: nginx:alpine
container_name: flask-prompt-master-nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./docker/nginx/ssl:/etc/nginx/ssl
- ./logs/nginx:/var/log/nginx
depends_on:
- app
networks:
- app-network
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
# 监控服务
monitor:
build:
context: .
dockerfile: Dockerfile.monitor
image: flask-prompt-master-monitor:latest
container_name: flask-prompt-master-monitor
restart: unless-stopped
environment:
- APP_URL=http://app:5000
- MONITOR_INTERVAL=30
volumes:
- ./logs:/app/logs
depends_on:
- app
networks:
- app-network
healthcheck:
test: ["CMD", "python", "-c", "import requests; requests.get('http://app:5000/health')"]
interval: 60s
timeout: 10s
retries: 3
# 日志管理服务
log-manager:
build:
context: .
dockerfile: Dockerfile.log-manager
image: flask-prompt-master-log-manager:latest
container_name: flask-prompt-master-log-manager
restart: unless-stopped
volumes:
- ./logs:/app/logs
networks:
- app-network
command: ["python", "log_manager.py"]
profiles:
- maintenance
volumes:
mysql_data:
driver: local
redis_data:
driver: local
networks:
app-network:
driver: bridge