services: db: image: mysql:8 ports: - "43306:3306" volumes: - ./sql/django_vue.sql:/docker-entrypoint-initdb.d/django_vue.sql - ./data/mysql:/var/lib/mysql # <-- 加这一行 networks: - dj_admin_network env_file: - ./docker/.env.dev - ./docker/.env.local healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-pmy-secret-pw" ] interval: 5s timeout: 5s retries: 10 redis: image: redis:7 restart: always ports: - "46379:6379" networks: - dj_admin_network env_file: - ./docker/.env.dev - ./docker/.env.local celery_worker: build: context: ./backend dockerfile: Dockerfile command: celery -A backend worker -l info env_file: - ./docker/.env.dev - ./docker/.env.local depends_on: - backend - redis networks: - dj_admin_network celery_beat: build: context: ./backend dockerfile: Dockerfile command: celery -A backend beat -l info env_file: - ./docker/.env.dev - ./docker/.env.local depends_on: - backend - redis networks: - dj_admin_network flower: build: context: ./backend dockerfile: Dockerfile command: celery -A backend flower --port=5555 env_file: - ./docker/.env.dev - ./docker/.env.local depends_on: - backend - redis ports: - "45555:5555" networks: - dj_admin_network backend: build: context: ./backend target: dev volumes: - ./backend:/app ports: - "48000:8000" networks: - dj_admin_network env_file: - ./docker/.env.dev - ./docker/.env.local environment: DATABASE_HOST: "db" depends_on: db: condition: service_healthy command: > sh -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000" web: build: context: ./web target: dev volumes: - ./web:/app ports: - "45678:5678" depends_on: - backend - ai_service networks: - dj_admin_network env_file: - ./docker/.env.dev - ./docker/.env.local ai_service: build: context: ./ai_service dockerfile: Dockerfile target: dev volumes: - ./ai_service:/app ports: - "48010:8010" depends_on: - db - redis networks: - dj_admin_network env_file: - ./docker/.env.dev - ./docker/.env.local command: uvicorn main:app --host 0.0.0.0 --port 8010 --reload networks: dj_admin_network: driver: bridge