Refactored the Zasilkovna SOAP client to use a singleton pattern with caching and lazy loading, improving reliability and startup performance. Updated invoice PDF generation to import WeasyPrint lazily, preventing startup failures on systems missing dependencies. Cleaned up unused imports and code in several frontend components, removed unused state and variables, and adjusted Docker frontend port mapping. Also updated Django migration files to reflect a new generation timestamp.
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:
|
|
|