Files
tuhui/backend/docker-compose.yml
2026-03-08 19:28:32 +08:00

54 lines
1.4 KiB
YAML

version: '3.8'
networks:
aishej_dev_network:
driver: bridge
services:
mysql:
image: mysql:8.0
container_name: aishej_mysql_dev
restart: always
networks:
- aishej_dev_network
environment:
MYSQL_ROOT_PASSWORD: rootpassword123
MYSQL_DATABASE: aishej_dev
MYSQL_USER: aishej_dev
MYSQL_PASSWORD: aishej_dev_123
ports:
- "3307:3306" # 使用3307端口避免冲突
volumes:
- mysql_data:/var/lib/mysql
- ./init_mysql.sql:/docker-entrypoint-initdb.d/init.sql
command: --default-authentication-plugin=mysql_native_password
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 5s
retries: 10
api:
build: .
container_name: aishej_api_dev
restart: always
networks:
- aishej_dev_network
ports:
- "8001:8001" # 使用8001端口避免冲突
volumes:
- ./app:/app/app # 挂载整个app目录
- ./uploads:/app/uploads
- ./seed_data.py:/app/seed_data.py
- ./download_test_images.py:/app/download_test_images.py
environment:
DATABASE_URL: mysql+pymysql://aishej_dev:aishej_dev_123@mysql:3306/aishej_dev
API_PORT: "8001"
PYTHONUNBUFFERED: "1" # Python不缓冲输出
depends_on:
mysql:
condition: service_healthy
command: sh -c "sleep 10 && uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload"
volumes:
mysql_data:
name: aishej_dev_mysql_data