Files
django-vue3-admin-gd/docker-compose.prod.yml
2025-11-07 23:43:34 +08:00

141 lines
2.6 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:
restart: always
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:
restart: always
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:
restart: always
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:
restart: always
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:
# restart: always
# 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.prod
# - ./docker/.env.local
frontend:
restart: always
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