From d50765f2ff088918e387e30d9138d4342712d862 Mon Sep 17 00:00:00 2001 From: Apple Date: Sat, 15 Nov 2025 11:40:07 -0800 Subject: [PATCH] feat: add memory-service to docker-compose.yml - Add memory-service as a service (not under networks:) - Create Dockerfile for memory-service - Configure depends_on city-db with healthcheck condition - Set DATABASE_URL to connect to city-db --- docker-compose.yml | 27 +++++++++++++++++++++++++++ services/memory-service/Dockerfile | 24 ++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 services/memory-service/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 084ac9e2..504ee1e4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -141,6 +141,33 @@ services: timeout: 5s retries: 5 + # Memory Service (user_facts, dialog_summaries, agent_memory_events) + memory-service: + build: + context: ./services/memory-service + dockerfile: Dockerfile + container_name: dagi-memory-service + ports: + - "8000:8000" + environment: + - DATABASE_URL=postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@city-db:5432/${POSTGRES_DB:-daarion_city} + - API_HOST=0.0.0.0 + - API_PORT=8000 + volumes: + - ./services/memory-service:/app + - ./logs:/app/logs + depends_on: + city-db: + condition: service_healthy + networks: + - dagi-network + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/health"] + interval: 30s + timeout: 10s + retries: 3 + networks: dagi-network: driver: bridge diff --git a/services/memory-service/Dockerfile b/services/memory-service/Dockerfile new file mode 100644 index 00000000..88a49365 --- /dev/null +++ b/services/memory-service/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3.11-slim + +WORKDIR /app + +# Встановлюємо системні залежності +RUN apt-get update && apt-get install -y \ + gcc \ + postgresql-client \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Копіюємо requirements та встановлюємо залежності +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Копіюємо код +COPY . . + +# Відкриваємо порт +EXPOSE 8000 + +# Запускаємо додаток +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] +