Introduces .dockerignore, production Dockerfile and nginx config for frontend, and refactors docker-compose.yml for multi-service deployment. Updates backend and frontend code to support public API tagging, improves refund handling, adds test email endpoint, and migrates Orval config to TypeScript. Removes unused frontend Dockerfile and updates dependencies for React Query and Orval.
119 lines
2.7 KiB
YAML
119 lines
2.7 KiB
YAML
services:
|
|
backend:
|
|
container_name: backend-vontor-cz
|
|
build:
|
|
context: ./backend
|
|
dockerfile: dockerfile
|
|
restart: always
|
|
env_file:
|
|
- ./backend/.env
|
|
networks:
|
|
- app_network
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
volumes:
|
|
- static-data:/app/collectedstaticfiles
|
|
- media-data:/app/media
|
|
command: sh -c "
|
|
python manage.py migrate --verbosity 3 --noinput &&
|
|
python manage.py check &&
|
|
python manage.py collectstatic --clear --noinput --verbosity 3 &&
|
|
python manage.py seed_app_config &&
|
|
gunicorn -k uvicorn.workers.UvicornWorker vontor_cz.asgi:application --bind 0.0.0.0:8000"
|
|
ports:
|
|
- "8000:8000"
|
|
|
|
db:
|
|
image: postgres:15-alpine
|
|
container_name: postgres-vontor-cz
|
|
restart: always
|
|
env_file:
|
|
- ./backend/.env
|
|
volumes:
|
|
- db-data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5432:5432"
|
|
networks:
|
|
- app_network
|
|
|
|
|
|
redis: #extremly fast db, stores data in RAM memory
|
|
container_name: redis-vontor-cz
|
|
image: redis:alpine
|
|
restart: always
|
|
env_file:
|
|
- ./backend/.env
|
|
volumes:
|
|
- redis-data:/data
|
|
expose:
|
|
- "6379"
|
|
networks:
|
|
- app_network
|
|
|
|
celery: #task queue for handling asynchronous/hard tasks
|
|
container_name: celery-vontor-cz
|
|
build:
|
|
context: ./backend
|
|
dockerfile: dockerfile
|
|
command: sh -c "python manage.py migrate --noinput && celery -A vontor_cz worker --loglevel=info"
|
|
restart: always
|
|
env_file:
|
|
- ./backend/.env
|
|
depends_on:
|
|
- redis
|
|
- db
|
|
- backend
|
|
networks:
|
|
- app_network
|
|
|
|
celery-beat: #periodic tasks scheduler
|
|
container_name: celery-beat-vontor-cz
|
|
build:
|
|
context: ./backend
|
|
dockerfile: dockerfile
|
|
command: sh -c "python manage.py migrate --noinput && celery -A vontor_cz beat --loglevel=info"
|
|
restart: always
|
|
env_file:
|
|
- ./backend/.env
|
|
depends_on:
|
|
- redis
|
|
- db
|
|
- backend
|
|
networks:
|
|
- app_network
|
|
|
|
#end of backend services -----------------------
|
|
|
|
nginx: #web server, reverse proxy, serves static files
|
|
container_name: nginx-vontor-cz
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile.prod
|
|
env_file:
|
|
- ./frontend/.env
|
|
ports:
|
|
- 80:80
|
|
# - 9000:80
|
|
depends_on:
|
|
- backend
|
|
networks:
|
|
- app_network
|
|
volumes:
|
|
- static-data:/app/collectedstaticfiles # static (Django)
|
|
- media-data:/app/media # media (Django)
|
|
- ./frontend/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
|
|
|
|
|
|
networks:
|
|
app_network:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
redis-data:
|
|
db-data:
|
|
static-data:
|
|
media-data:
|
|
|