54 lines
1.4 KiB
YAML
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 |