services: migrate: build: context: ./log_processor dockerfile: Dockerfile container_name: log-migrations command: uv run alembic upgrade head env_file: - ./log_processor/.docker.env depends_on: postgres: condition: service_healthy redis: condition: service_started restart: "no" backend: build: context: ./log_processor dockerfile: Dockerfile container_name: log-backend command: ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] env_file: - ./log_processor/.docker.env ports: - "8000:8000" depends_on: postgres: condition: service_healthy redis: condition: service_started restart: unless-stopped frontend: build: context: ./client dockerfile: Dockerfile args: VITE_API_URL: http://localhost:8000 VITE_WS_URL: ws://localhost:8000 container_name: log-frontend ports: - "5173:80" depends_on: postgres: condition: service_healthy redis: condition: service_started restart: unless-stopped worker: build: context: ./log_processor dockerfile: Dockerfile container_name: log-worker command: uv run python -m app.workers.processor env_file: - ./log_processor/.docker.env depends_on: postgres: condition: service_healthy redis: condition: service_started restart: unless-stopped redis: image: redis:latest container_name: redis ports: - "6379:6379" restart: unless-stopped postgres: image: postgres:15 container_name: postgres environment: POSTGRES_DB: logger POSTGRES_USER: postgres POSTGRES_PASSWORD: root healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d logger"] interval: 5s timeout: 5s retries: 10 ports: - "5432:5432" volumes: - log_data:/var/lib/postgresql/data restart: unless-stopped volumes: log_data: