Files
vontor-cz/docker-compose.yml
Vontor Bruno 72155d4560 Refactor Zasilkovna client, update imports and cleanup
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.
2025-12-18 16:23:35 +01:00

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: