Files
links/docker-compose.yml
T
2024-11-17 11:11:08 +11:00

126 lines
2.9 KiB
YAML

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"
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