77 lines
1.6 KiB
YAML
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
|