init
This commit is contained in:
117
docker-compose.yml
Normal file
117
docker-compose.yml
Normal file
@@ -0,0 +1,117 @@
|
||||
services:
|
||||
backend:
|
||||
container_name: backend-e-trznice
|
||||
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 check &&
|
||||
python manage.py collectstatic --clear --noinput --verbosity 3 &&
|
||||
python manage.py makemigrations --noinput &&
|
||||
python manage.py migrate --verbosity 3 --noinput &&
|
||||
gunicorn -k uvicorn.workers.UvicornWorker trznice.asgi:application --bind 0.0.0.0:8000"
|
||||
ports:
|
||||
- "8000:8000"
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
container_name: postgres-e-trznice
|
||||
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-e-trznice
|
||||
image: redis:alpine
|
||||
restart: always
|
||||
env_file:
|
||||
- ./backend/.env
|
||||
environment:
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
expose:
|
||||
- "6379"
|
||||
networks:
|
||||
- app_network
|
||||
|
||||
celery: #task queue for handling asynchronous/hard tasks
|
||||
container_name: celery-e-trznice
|
||||
build:
|
||||
context: ./backend
|
||||
command: celery -A trznice worker --loglevel=info
|
||||
volumes:
|
||||
- ./backend:/code
|
||||
env_file:
|
||||
- ./backend/.env
|
||||
depends_on:
|
||||
- redis
|
||||
- db
|
||||
- backend
|
||||
networks:
|
||||
- app_network
|
||||
|
||||
celery-beat: #periodic tasks scheduler
|
||||
container_name: celery-beat-e-trznice
|
||||
build:
|
||||
context: ./backend
|
||||
command: celery -A trznice beat --loglevel=info
|
||||
volumes:
|
||||
- ./backend:/code
|
||||
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-e-trznice
|
||||
build:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile.prod
|
||||
env_file:
|
||||
- ./frontend/.env
|
||||
ports:
|
||||
- 3000:80
|
||||
depends_on:
|
||||
- backend
|
||||
networks:
|
||||
- app_network
|
||||
volumes:
|
||||
- static-data:/app/collectedstaticfiles # static (Django)
|
||||
- media-data:/app/media # media (Django)
|
||||
|
||||
|
||||
networks:
|
||||
app_network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
redis-data:
|
||||
db-data:
|
||||
static-data:
|
||||
media-data:
|
||||
|
||||
Reference in New Issue
Block a user