135 lines
2.5 KiB
YAML
135 lines
2.5 KiB
YAML
services:
|
|
db:
|
|
image: mysql:8
|
|
restart: always
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
environment:
|
|
TZ: Asia/Shanghai
|
|
ports:
|
|
- "33306:3306"
|
|
volumes:
|
|
- ./sql/django_vue.sql:/docker-entrypoint-initdb.d/django_vue.sql
|
|
- ./data/mysql_prod:/var/lib/mysql # <-- 加这一行
|
|
networks:
|
|
- app_net
|
|
|
|
|
|
redis:
|
|
image: redis:7
|
|
restart: always
|
|
ports:
|
|
- "36379:6379"
|
|
networks:
|
|
- app_net
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
target: prod
|
|
command: gunicorn backend.wsgi:application --bind 0.0.0.0:8000
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
volumes:
|
|
- static_data:/app/static
|
|
- media_data:/app/media
|
|
ports:
|
|
- "38000:8000"
|
|
networks:
|
|
- app_net
|
|
|
|
celery_worker:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
command: celery -A backend worker -l info
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
depends_on:
|
|
- backend
|
|
- redis
|
|
networks:
|
|
- app_net
|
|
|
|
celery_beat:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
command: celery -A backend beat -l info
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
depends_on:
|
|
- backend
|
|
- redis
|
|
networks:
|
|
- app_net
|
|
|
|
flower:
|
|
build:
|
|
context: ./backend
|
|
dockerfile: Dockerfile
|
|
command: celery -A backend flower --port=5555
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
depends_on:
|
|
- backend
|
|
- redis
|
|
ports:
|
|
- "35555:5555"
|
|
networks:
|
|
- app_net
|
|
|
|
ai_service:
|
|
build:
|
|
context: ./ai_service
|
|
dockerfile: Dockerfile # 复用 backend 的 Dockerfile
|
|
target: prod
|
|
volumes:
|
|
- ./ai_service:/app
|
|
ports:
|
|
- "38010:8010"
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
networks:
|
|
- app_net
|
|
env_file:
|
|
- ./docker/.env.dev
|
|
- ./docker/.env.local
|
|
command: uvicorn main:app --host 0.0.0.0 --port 8010 --reload
|
|
|
|
frontend:
|
|
build:
|
|
context: ./web
|
|
dockerfile: Dockerfile
|
|
target: prod
|
|
depends_on:
|
|
- backend
|
|
- ai_service
|
|
ports:
|
|
- "35678:80"
|
|
networks:
|
|
- app_net
|
|
env_file:
|
|
- ./docker/.env.prod
|
|
- ./docker/.env.local
|
|
|
|
volumes:
|
|
db_data:
|
|
static_data:
|
|
media_data:
|
|
|
|
networks:
|
|
app_net:
|
|
driver: bridge |