availabili.tf/docker-compose.yml

77 lines
1.6 KiB
YAML

version: '3.9'
services:
# Flask service
backend:
container_name: backend
image: backend-flask
build:
context: ./backend-flask
volumes:
- ./backend-flask:/app
networks:
- dev-network
environment:
- FLASK_DEBUG=1
- FLASK_CELERY_BROKER_URL=redis://redis:6379/0
- FLASK_CELERY_RESULT_BACKEND=redis://redis:6379/0
- DATABASE_URI=sqlite:///db.sqlite3
depends_on:
- redis
# ETL job (runs with the same source as the backend)
celery-worker:
container_name: worker
command: celery -A make_celery.celery_app worker --loglevel=info --concurrency=1 -B
environment:
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- DATABASE_URI=sqlite:///db.sqlite3
image: backend-flask
volumes:
- ./backend-flask:/app
networks:
- dev-network
depends_on:
- redis
# message broker
redis:
image: redis:alpine
container_name: redis
networks:
- dev-network
ports:
- 6379:6379
# Vue + Vite service
frontend:
container_name: frontend
build:
context: ./availabili.tf
environment:
VITE_API_URL: http://localhost:8000 # API endpoint
ports:
- 5173:5173
volumes:
- ./availabili.tf:/app
networks:
- dev-network
# NGINX service
nginx:
image: nginx:latest
ports:
- "8000:80"
volumes:
- ./nginx/development.conf:/etc/nginx/nginx.conf
depends_on:
- backend
- frontend
networks:
- dev-network
networks:
dev-network:
driver: bridge