version: '3.8' services: web: build: context: . dockerfile: Dockerfile.local image: web-local-image command: > bash -c "uv sync --no-dev && uv run python manage.py migrate && uv run python manage.py runserver 0.0.0.0:8000" volumes: - .:/app - venv:/app/.venv - ./data/media:/app/data/media - ./data/celery:/app/data/celery ports: - "8000:8000" env_file: - .env environment: - DJANGO_SETTINGS_MODULE=core.settings - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 depends_on: - redis restart: unless-stopped networks: - app-network node: image: web-local-image command: > bash -c " npm install && uv pip install --system django-tailwind && uv run python manage.py tailwind install && uv run python manage.py tailwind start" volumes: - .:/app - venv:/app/.venv - node_modules:/app/node_modules environment: - DJANGO_SETTINGS_MODULE=core.settings - PYTHONPATH=/app - UV_CACHE_DIR=/app/.cache/uv depends_on: web: condition: service_started networks: - app-network tty: true stdin_open: true celery_worker: image: web-local-image command: uv run celery -A core worker --loglevel=info volumes: - .:/app - venv:/app/.venv - ./data/media:/app/data/media - ./data/celery:/app/data/celery environment: - DJANGO_SETTINGS_MODULE=core.settings - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 depends_on: - redis - web restart: unless-stopped networks: - app-network celery_beat: image: web-local-image command: uv run celery -A core beat -s /app/data/celery/celerybeat-schedule --loglevel=info volumes: - .:/app - venv:/app/.venv - ./data/media:/app/data/media - ./data/celery:/app/data/celery environment: - DJANGO_SETTINGS_MODULE=core.settings - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 depends_on: - redis - web restart: unless-stopped networks: - app-network celery_flower: image: web-local-image command: uv run celery -A core flower --port=5555 --loglevel=info volumes: - .:/app - venv:/app/.venv - ./data/media:/app/data/media - ./data/celery:/app/data/celery ports: - "5555:5555" environment: - DJANGO_SETTINGS_MODULE=core.settings - CELERY_BROKER_URL=redis://redis:6379/0 - CELERY_RESULT_BACKEND=redis://redis:6379/0 depends_on: - redis - web restart: unless-stopped networks: - app-network redis: image: redis:alpine ports: - "6379:6379" networks: - app-network volumes: venv: node_modules: networks: app-network: driver: bridge