quivr/docker-compose.yml

95 lines
2.6 KiB
YAML

version: '3'
services:
traefik:
image: traefik:v2.10
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:5050"
ports:
- "5050:5050"
- "8080:8080" # For the Traefik dashboard (optional)
volumes:
- /var/run/docker.sock:/var/run/docker.sock
frontend:
env_file:
- ./frontend/.env
build:
context: frontend
dockerfile: Dockerfile
container_name: web
restart: always
ports:
- 3000:3000
backend-core:
env_file:
- ./backend/.env
build:
context: backend
dockerfile: Dockerfile
container_name: backend-core
command: uvicorn main:app --host 0.0.0.0 --port 5050
restart: always
volumes:
- ./backend/:/code/
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend-core.rule=PathPrefix(`/`)"
- "traefik.http.routers.backend-core.entrypoints=web"
- "traefik.http.services.backend-core.loadbalancer.server.port=5050"
backend-chat:
env_file:
- ./backend/.env
build:
context: backend
dockerfile: Dockerfile
container_name: backend-chat
command: uvicorn chat_service:app --host 0.0.0.0 --port 5050
restart: always
volumes:
- ./backend/:/code/
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend-chat.rule=PathPrefix(`/chat`)"
- "traefik.http.routers.backend-chat.entrypoints=web"
- "traefik.http.services.backend-chat.loadbalancer.server.port=5050"
backend-crawl:
env_file:
- ./backend/.env
build:
context: backend
dockerfile: Dockerfile
container_name: backend-crawl
command: uvicorn crawl_service:app --host 0.0.0.0 --port 5050
restart: always
volumes:
- ./backend/:/code/
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend-crawl.rule=PathPrefix(`/crawl`)"
- "traefik.http.routers.backend-crawl.entrypoints=web"
- "traefik.http.services.backend-crawl.loadbalancer.server.port=5050"
backend-upload:
env_file:
- ./backend/.env
build:
context: backend
dockerfile: Dockerfile
container_name: backend-upload
command: uvicorn upload_service:app --host 0.0.0.0 --port 5050
restart: always
volumes:
- ./backend/:/code/
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend-upload.rule=PathPrefix(`/upload`)"
- "traefik.http.routers.backend-upload.entrypoints=web"
- "traefik.http.services.backend-upload.loadbalancer.server.port=5050"